从有关对数的numpy文档中,我发现了以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)?
Answers:
要使用自定义底数获取对数,请使用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]
如您所料,请注意默认情况下np.log(np.e) == 1.0
。
提醒一下,对数基数更改规则是: