NumPy 对数

对数(Logs)

NumPy 提供了函数来执行以 2、e 和 10 为底的对数运算。

我们还将探索如何通过创建自定义 ufunc 来获取任何基数的日志。

如果无法计算对数,所有对数函数都会将 -inf 或 inf 放入元素中。

以 2 为底的对数

使用 log2() 函数执行以 2 为底的对数运算。

实例

求以下数组中所有元素以 2 为底的对数:

import numpy as np

arr = np.arange(1, 10)

print(np.log2(arr))

亲自试一试

注意:arange(1, 10) 函数返回一个数组,其中的整数从 1(包含)到 10(不包含)。

以 10 为底的对数

使用 log10() 函数执行以 10 为底的对数运算。

实例

求以下数组中所有元素以 10 为底的对数:

import numpy as np

arr = np.arange(1, 10)

print(np.log10(arr))

亲自试一试

自然对数,或以 e 为底的对数

使用 log() 函数执行以 e 为底的对数运算。

实例

求以下数组中所有元素以 e 为底的对数:

import numpy as np

arr = np.arange(1, 10)

print(np.log(arr))

亲自试一试

任何底数的对数

NumPy 没有提供任何函数来计算任何底数的对数,因此我们可以使用 frompyfunc() 函数以及带有两个输入参数和一个输出参数的内置函数 math.log()

实例

from math import log
import numpy as np

nplog = np.frompyfunc(log, 2, 1)

print(nplog(100, 15))

亲自试一试