这是我的代码。但我有上述错误。我之前进行过搜索,但没有帮助我找到答案。此代码中有什么不正确?
import numpy as np
import math
def sigmoid(x):
s = np.array(None)
for i in x:
np.append(s,(1/(math.exp(-x)+1)))
return s
x = np.array([1, 2, 3])
sigmoid(x)
<ipython-input-31-8e002c20e792> in sigmoid(x)
17 s = np.array(None)`
18 for i in x:
---> 19 np.append(s,(1/(math.exp(-x)+1)))
20 return s
TypeError: only length-1 arrays can be converted to Python scalars
答案 0 :(得分:0)
只需将math.exp
替换为np.exp
。前者是Python内置的,仅能理解标量(因此会出现错误消息)。
还要注意,np.append()
返回结果,并且不修改其参数。因此,您需要将结果分配回s
。另外请注意,重复追加到NumPy数组是一种反模式-您应在开始时分配整个数组。