numpy.ndarray不是可调用的

时间:2018-11-10 10:12:58

标签: python numpy numpy-ndarray

def sigmoid(x):

    s = 1/(1+np.exp(-x))  
    return s  



def sigmoid_derivative(x):

     #Arguments: x is A scalar or numpy array


    s = sigmoid(x)
    ds = s(1-s)

    return ds

x = np.array([1, 2, 3])
print ("sigmoid_derivative(x) = " + str(sigmoid_derivative(x)))

我收到此错误:

  TypeError  :                              Traceback (most recent call 
 last)
  <ipython-input-66-2715e4ef84dc> in <module>()
        1 x = np.array([1, 2, 3])
  ----> 2 print ("sigmoid_derivative(x) = " + str(sigmoid_derivative(x)))

  <ipython-input-65-177c1f00eabb> in sigmoid_derivative(x)
        16     s = sigmoid(x)
    ---> 17     ds = s(1-s)


   TypeError: 'numpy.ndarray' object is not callable

我不明白我在哪里出错了。我尝试将其更改为np.exp(),但仍然无法正常工作。我一直在尝试阅读文档,但对于需要做什么仍然一无所知。有人可以给我一些指示吗?

1 个答案:

答案 0 :(得分:2)

问题是s(1-s),在python中使用()是要调用一个函数(可调用)。 如果是多重,则应将*放在此处。将您的代码行更改为:

ds = s*(1-s)