python - numpy 错误 :TypeError: only length-1 arrays can be converted to Python scalars

标签 python numpy

我写了一个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/

相关文章:

python pandas聚合非数字类型

python - 如何将 MNIST 数字分类到每个类别标签中?

python - 声明 basinhopping 优化的约束

python - 在计算最小二乘法时,为什么要添加 1 的向量?

python - 如何用 Python 解决僵硬的问题?

python - 使用 np.outer 生成圆柱面

python - 计算两个列表之间的相似度

python - 如何使用 Flask 测试模板上下文变量

python - 如何使用 seaborn factorplot 更改图形大小

numpy - 将 numpy 数组运算符保留在 np.float32 中