Python 中的 numpy.log()

17 Mar 2025 | 4 分钟阅读

numpy.log() 是一个数学函数,用于计算 x 的自然对数(x 属于所有输入数组元素)。 它是指数函数的逆函数,也是一个逐元素的自然对数。 自然对数 log 是指数函数的反函数,因此 log(exp(x))=x。 以 e 为底的对数是自然对数。

语法

参数

x: array_like

此参数定义 numpy.log() 函数的输入值。

out:ndarray,None 或 ndarray 和 None 的元组(可选)

此参数用于定义存储结果的位置。 如果我们定义了此参数,则它必须具有与输入广播相似的形状; 否则,将返回一个新分配的数组。 元组的长度等于输出的数量。

where: array_like(可选)

这是一个在输入上广播的条件。 在条件为真的位置,out 数组将被设置为 ufunc(通用函数)结果; 否则,它将保留其原始值。

casting: {'no','equiv','safe','same_kind','unsafe'}(optional)

此参数控制可能发生的数据类型转换。 “no” 表示根本不应转换数据类型。 “equiv” 表示只允许字节顺序更改。 “safe” 表示只有可以保留值的强制转换。 “same_kind” 表示只有安全强制转换或某种类型内的强制转换。 “unsafe” 表示可以进行任何数据转换。

order: {'K', 'C', 'F', 'A'}(optional)

此参数指定输出数组的计算迭代顺序/内存布局。 默认情况下,顺序为 K。顺序“C”表示输出应该是 C-连续的。 顺序“F”表示 F-连续,如果输入是 F-连续的,则“A”表示 F-连续,如果输入是 C-连续的,则“A”表示 C-连续。 “K”表示匹配输入的元素顺序(尽可能接近)。

dtype:数据类型(可选)

它覆盖了计算和输出数组的 dtype。

subok: bool(optional)

默认情况下,此参数设置为 true。 如果我们将其设置为 false,则输出将始终是一个严格的数组,而不是子类型。

signature

此参数允许我们为底层计算中使用的 1-d 循环“for”提供特定的签名。

extobj

此参数是长度为 1、2 或 3 的列表,用于指定 ufunc 缓冲区大小、错误模式整数和错误回调函数。

返回值

此函数返回一个 ndarray,其中包含 x 的自然对数值,x 属于输入数组的所有元素。

示例 1

输出

array([   2,    4,    6, 6561])
array([0.69314718, 1.38629436, 1.79175947, 8.78889831])
array([ 1.        ,  2.        ,  2.5849625 , 12.67970001])
array([0.30103   , 0.60205999, 0.77815125, 3.81697004])

在上面提到的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们使用 np.array() 函数创建了一个数组“a”。
  • 我们声明了变量 b、c 和 d,并分别赋值了 np.log()、np.log2() 和 np.log10() 函数的返回值。
  • 我们在所有函数中都传递了数组“a”。
  • 最后,我们尝试打印 b、c 和 d 的值。

在输出中,显示了一个 ndarray,其中包含源数组的所有元素的 log、log2 和 log10 值。

示例 2

输出

numpy.log()

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们还导入了 matplotlib.pyplot,别名为 plt。
  • 接下来,我们使用 np.array() 函数创建了一个数组 'arr'。
  • 之后,我们声明了变量 result1、result2、result3,并分别赋值了 np.log()、np.log2() 和 np.log10() 函数的返回值。
  • 我们在所有函数中都传递了数组“arr”。
  • 最后,我们尝试绘制 'arr'、result1、result2 和 result3 的值。

在输出中,显示了一个具有四条不同颜色直线的图形。

示例 3

输出

__main__:1: RuntimeWarning: divide by zero encountered in log
array([0.69314718, 1.        , 3.        ,       -inf])

在上面的代码中

  • 首先,我们导入了 numpy,别名为 np。
  • 我们声明了变量“x”,并赋值了 np.log() 函数的返回值。
  • 我们在函数中传递了不同的值,例如整数值、np.e 和 np.e**2。
  • 最后,我们尝试打印“x”的值。

在输出中,显示了一个 ndarray,其中包含源数组的元素的 log 值。


下一个主题numpy-where