【发布时间】:2021-05-05 12:17:39
【问题描述】:
在我开始提问之前,很抱歉没有熟练地用英语表达我的问题并做python......
为了练习 np.vectorize,我正在编写一些代码。
def H(x):
if x == 0 :
return 0.5
elif x > 0:
return 1
else :
return 0
然后,我将 vH 定义为矢量化函数。
vH = np.vectorize(H)
它按我的预期工作。
vH(0)
array(0.5)
但是,当输入数组为负数时,它不适用于“零”。
a = np.array([ -1, 0. , 0, 1 ])
vH(a)
array([0, 0, 0, 1]) # I expect the result array([0, 0.5, 0.5, 1])
我试图找到这个问题的原因和解决方案。 我真的不知道为什么会这样…… 我错过了什么吗???
请回答为什么会发生以及如何解决它
感谢您阅读这个问题!
【问题讨论】:
-
阅读关于返回值
dtype和otypes参数的内容。vectorize看起来很简单,但比看起来更棘手。而且它永远不会很快(呃)。
标签: python arrays numpy vectorization