这听起来像一个天真的问题,但我无法弄清楚为什么有两个函数实例,如e,log等,每个numpy和数学都有一个。例如numpy.e和math.e给出了完全相同的结果2.71828 .......这个重复的原因是什么?
答案 0 :(得分:1)
numpy
函数名为ufunc
,您可以在numpy
数组中使用它们:
>>> import numpy
>>> numpy.exp (numpy.array([1, 2, 3]))
array([ 2.71828183, 7.3890561 , 20.08553692])
math
函数是标准函数(标准python库的一部分),因此它们只能用于标准类型(例如int
或float
)。
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])
失败)。