NumPy:以n为底的对数

发布于 2021-01-29 18:39:12

有关对数numpy文档中,我发现了以
e

210为底取对数的函数:

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)?

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    要使用自定义底数获取对数,请使用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


    提醒一下,对数基数更改规则是:

    \ log_b(x)= \ log_c(x)/ \ log_c(b)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看