numpy和数学的指数和日志函数之间的差异

时间:2015-07-31 07:29:22

标签: math numpy logging

这听起来像一个天真的问题,但我无法弄清楚为什么有两个函数实例,如e,log等,每个numpy和数学都有一个。例如numpy.e和math.e给出了完全相同的结果2.71828 .......这个重复的原因是什么?

1 个答案:

答案 0 :(得分:1)

numpy函数名为ufunc,您可以在numpy数组中使用它们:

>>> import numpy
>>> numpy.exp (numpy.array([1, 2, 3]))
array([  2.71828183,   7.3890561 ,  20.08553692])

math函数是标准函数(标准python库的一部分),因此它们只能用于标准类型(例如intfloat)。

numpy函数比数学函数(在处理vector / matrix /等时)更强大,但numpy不是标准库。

如果您查看type功能的exp,则会收到以下信息:

>>> type(numpy.exp)
numpy.ufunc
>>> type(math.exp)
builtin_function_or_method

您可以看到numpy定义了自己的exp函数,而math.exp函数是builtin

不能可以随意使用它们:numpy.exp将在math.exp工作的地方工作,但反之则不正确(math.exp([1, 2, 3])失败)。