Python中的数学库和数组

Hen*_*rra 1 python arrays math numpy vectorization

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

import numpy as np
import math
a = np.array([0, 1, 2, 3])
a1 = np.vectorize(a)
print("sin(a) = \n", math.sin(a1)) 
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用.发生错误:"TypeError: must be real number, not vectorize".

如何使用矢量化函数来计算那种东西?

Eri*_*nil 6

整点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])
Run Code Online (Sandbox Code Playgroud)

您可以a像使用标量一样使用相应的数组.

如果你真的需要使用math.sin(提示:你没有),你可以对它进行矢量化(函数本身,而不是数组):

>>> vsin = np.vectorize(math.sin)
>>> vsin(a)
array([ 0.        ,  0.84147098,  0.90929743,  0.14112001])
Run Code Online (Sandbox Code Playgroud)

  • 我只是理解numpy感谢这个答案:) (2认同)