我要使用数学库对数组进行一些计算。
我试过这样的事情:
import numpy as np
import math
a = np.array([0, 1, 2, 3])
a1 = np.vectorize(a)
print("sin(a) = \n", math.sin(a1))
不幸的是,它不起作用。发生错误:"TypeError: must be real number, not vectorize"
。
我怎样才能使用矢量化函数来计算这类东西?
最佳答案
整点numpy是你不需要任何 math
方法或任何列表理解:
>>> import numpy as np
>>> a = np.array([0, 1, 2, 3])
>>> a + 1
array([1, 2, 3, 4])
>>> np.sin(a)
array([ 0. , 0.84147098, 0.90929743, 0.14112001])
>>> a ** 2
array([0, 1, 4, 9])
>>> np.exp(a)
array([ 1. , 2.71828183, 7.3890561 , 20.08553692])
您可以像使用标量一样使用a
,并获得相应的数组。
如果你真的需要使用math.sin
(提示:你不需要),你可以vectorize它(函数本身,而不是数组):
>>> vsin = np.vectorize(math.sin)
>>> vsin(a)
array([ 0. , 0.84147098, 0.90929743, 0.14112001])
关于python - Python 中的数学库和数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46593021/