NumPy:以 n 为底的对数

Posted

技术标签:

【中文标题】NumPy:以 n 为底的对数【英文标题】:NumPy: Logarithm with base n 【发布时间】:2014-09-29 21:57:03 【问题描述】:

从numpy documentation on logarithms,我找到了以e、2 和10 为底的对数的函数:

import numpy as np
np.log(np.e**3) #3.0
np.log2(2**3)   #3.0
np.log10(10**3) #3.0

但是,我如何在 numpy 中取以 n 为底的对数(例如 42)?

【问题讨论】:

【参考方案1】:

要使用math.log 获取自定义底数的对数:

import math
number = 74088  # = 42^3
base = 42
exponent = math.log(number, base)  # = 3

要使用numpy.log 获得自定义底数的对数:

import numpy as np
array = np.array([74088, 3111696])  # = [42^3, 42^4]
base = 42
exponent = np.log(array) / np.log(base)  # = [3, 4]

其中使用对数base change规则:

【讨论】:

当我需要千数数组的对数时,我坚持使用 Numpy。 我不明白为什么 base 不是 numpy 日志中的参数...我总是回到这里...

以上是关于NumPy:以 n 为底的对数的主要内容,如果未能解决你的问题,请参考以下文章

理解对数——金融问题中的自然对数(以e为底的对数)

如何在 Redshift 中计算以 2 为底的对数

机器学习理论换底公式--以e,2,10为底的对数关系转化

解释一下数学的log(对数)

数学 - 概念回顾

log对数运算符号是啥意思?