'numpy.ndarray'对象不可调用错误[英] 'numpy.ndarray' object is not callable error

本文是小编为大家收集整理的关于'numpy.ndarray'对象不可调用错误的处理方法,想解了'numpy.ndarray'对象不可调用错误的问题怎么解决?'numpy.ndarray'对象不可调用错误问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

您好,我收到以下错误

'numpy.ndarray' 对象不可调用

当以下列方式进行计算时

rolling_means = pd.rolling_mean(prices,20,min_periods=20)`
rolling_std =  pd.rolling_std(prices, 20)`

#print rolling_means.head(20)
 upper_band = rolling_means + (rolling_std)* 2
 lower_band = rolling_means - (rolling_std)* 2

我不知道如何解决,谁能指出我正确的方向......

推荐答案

错误 TypeError: 'numpy.ndarray' object is not callable 表示您尝试将 numpy 数组作为函数调用.我们可以在 repl 中重现错误:

In [16]: import numpy as np

In [17]: np.array([1,2,3])()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/user/<ipython-input-17-1abf8f3c8162> in <module>()
----> 1 np.array([1,2,3])()

TypeError: 'numpy.ndarray' object is not callable

如果我们假设错误确实来自您发布的代码片段(您应该检查的内容),那么您必须在前面的代码中将 pd.rolling_mean 或 pd.rolling_std 重新分配给一个 numpy 数组代码.

我的意思是这样的:

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: pd.rolling_mean(np.array([1,2,3]), 20, min_periods=5) # Works
Out[3]: array([ nan,  nan,  nan])

In [4]: pd.rolling_mean = np.array([1,2,3])

In [5]: pd.rolling_mean(np.array([1,2,3]), 20, min_periods=5) # Doesn't work anymore...
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/user/<ipython-input-5-f528129299b9> in <module>()
----> 1 pd.rolling_mean(np.array([1,2,3]), 20, min_periods=5) # Doesn't work anymore...

TypeError: 'numpy.ndarray' object is not callable

因此,基本上您需要在代码库的其余部分中搜索 pd.rolling_mean = ... 和/或 pd.rolling_std = ... 以查看您可能在哪里覆盖了它们.


另外,如果您愿意,可以输入 reload(pd) 就在您的片段之前,这应该通过将 pd 的值恢复为您最初导入它的值来使其运行,但我仍然高度建议您尝试找到可能的位置已重新分配给定的功能.

本文地址:https://www.itbaoku.cn/post/1727763.html