python教程—NumPy:以n为底的对数-Python实用宝典

python教程—NumPy:以n为底的对数

从关于对数的numpy文档中,我找到了以e、2和10为底取对数的函数:

从< a href = " http://docs.scipy.org/doc/numpy/reference/routines.math.html exponents-and-logarithms”> numpy文档对数< / >,我发现函数的对数与基地< a href = " http://docs.scipy.org/doc/numpy/reference/generated/numpy.log.html numpy.log " > < em > < / em > < / >, < a href = " http://docs.scipy.org/doc/numpy/reference/generated/numpy.log2.html numpy.log2 " > < / >,和< a href = " http://docs.scipy.org/doc/numpy/reference/generated/numpy.log10.html numpy.log10 " > < / >: 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)为底的对数呢?

回答

使用math.log获得自定义基数的对数:

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

使用

    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。


提醒一下,logm base change规则是:

NumPy:以n为底的对数

​Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典

本文由 Python实用宝典 作者:Python实用宝典 发表,其版权均为 Python实用宝典 所有,文章内容系作者个人观点,不代表 Python实用宝典 对观点赞同或支持。如需转载,请注明文章来源。
2

发表评论