【发布时间】:2017-10-05 19:02:38
【问题描述】:
我将使用数学库对数组进行一些计算。
我试过这样的事情:
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"。
如何使用 vectorize 函数来计算这类东西?
【问题讨论】:
-
我不确定您要做什么。据我所知,
vectorize期望您传递一个函数,但您传递了一个数组。math.sin当然希望你传递一个数字,但你传递了一个vectorized(本质上是一个函数)。你到底想完成什么? -
再次阅读numpy的文档,仔细!您可能只想要
np.sin(a)(无需导入数学;无需混合这些,尤其是无需使用矢量化)。 -
你为什么需要使用数学?
-
如果要避免
np.sin,规范的方法是定义f=np.vectorize(math.sin)并应用f(a)。 -
听起来像个垃圾作业
标签: python arrays numpy math vectorization