Python错误:TypeError:'int'和'function'的操作数类型不受支持

2024-04-23 07:03:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一项任务。即使在研究了错误并应用了建议的修复方法之后,我仍然不断得到TypeError:-:“int”和“function”的不支持的操作数类型。我不想找任何人给我一个解决方案,但我希望再看一眼。我错过了一些东西,但我不知道是什么。这是我遇到问题的代码部分:

accuracies = [calculate_accuracy(df['Close'].iloc[-test_size:].values, r) for r in results]

plt.figure(figsize = (15, 5))
for no, r in enumerate(results):
    plt.plot(r, label = 'forecast %d'%(no + 1))
plt.plot(df['Close'].iloc[-test_size:].values, label = 'true trend', c = 'black')
plt.legend()
plt.title('average accuracy: %.4f'%(np.mean(accuracies)))
plt.show()

收到的响应代码为:

<ipython-input-109-bece89ad4cea> in <listcomp>(.0)
----> 1 accuracies = [calculate_accuracy(df['Close'].iloc[-test_size:].values, r) for r in results]
      2 
      3 plt.figure(figsize = (15, 5))
      4 for no, r in enumerate(results):
      5     plt.plot(r, label = 'forecast %d'%(no + 1))

<ipython-input-105-f18f06dc1a5f> in calculate_accuracy(real, predict)
     60 def calculate_accuracy(real, predict):
     61     real = np.array(real) + 1
---> 62     predict = np.array(predict) + 1
     63     percentage = 1 - np.sqrt(np.mean(np.square((real - predict) / real)))
     64     return percentage * 100

TypeError: unsupported operand type(s) for +: 'function' and 'int'

如果您对此有任何见解,将不胜感激


Tags: nointestdfforclosenpplt
1条回答
网友
1楼 · 发布于 2024-04-23 07:03:52

每个人都在关注values。但是valuesDataFrame的有效用法values()是字典用法

更仔细地查看回溯:

<ipython-input-109-bece89ad4cea> in <listcomp>(.0)
  > 1 accuracies = [calculate_accuracy(df['Close'].iloc[-test_size:].values, r) for r in results]
...
<ipython-input-105-f18f06dc1a5f> in calculate_accuracy(real, predict)
     60 def calculate_accuracy(real, predict):
     61     real = np.array(real) + 1
 -> 62     predict = np.array(predict) + 1
...

TypeError: unsupported operand type(s) for +: 'function' and 'int'

问题在于predict,它是calculate_accuracy的第二个参数,元素r来自results。第一个参数real可以

也就是说,我无法想象np.array(predict)如何产生一个function

什么是results?它是怎么生产的?错误表明这是一个函数列表。为什么?

您可能还想显示calculate_accuracy函数,但我们可能在错误回溯中看到了足够的内容

相关问题 更多 >