繁体   English   中英

Python中的数学库和数组

[英]Math library and arrays in Python

我要使用数学库对数组进行一些计算。
我尝试过这样的事情:

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 (提示:不需要),则可以将其向量化 (函数本身,而不是数组):

>>> vsin = np.vectorize(math.sin)
>>> vsin(a)
array([ 0.        ,  0.84147098,  0.90929743,  0.14112001])
import numpy as np
import math
a = np.array([0, 1, 2, 3])
print("sin(a) = \n", [math.sin(x) for x in a])

math.sin一次需要一个实数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM