我写了一个sigmoid函数:
def sigmoid(inX):
return 1.0 / (1 + exp(-inX))
当inX是100x1大小的矩阵时,会出现错误:
/home/abyss/python/machine/logistic/logReg.py in sigmoid(inX)
12
13 def sigmoid(inX):
---> 14 r = 1.0 / (1 + exp(-inX))
15 return r
16
TypeError: only length-1 arrays can be converted to Python scalars
但我可以直接在命令行中使用这个表达式:
In [59]: r = 1.0 / (1 + exp(-h))
In [60]: shape(r)
Out[60]: (100, 1)
我完全困惑了,这是怎么发生的?
最佳答案
当您计算数组的指数或其他任何不想使用 Python 数学库的内容时,请改用 NumPy 库:
import numpy as np
def sigmoid(inX):
r = 1.0/(1+ np.exp(-inX))
return r
关于python - numpy 错误 :TypeError: only length-1 arrays can be converted to Python scalars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29442225/