【问题标题】:Uknown TypeError: 'numpy.ndarray' object is not callable未知类型错误:“numpy.ndarray”对象不可调用
【发布时间】:2019-05-27 17:54:52
【问题描述】:

我有一个 TypeError: 'numpy.ndarray' object is not callable,我现在知道这意味着什么。我目前正在关注本教程:https://www.youtube.com/watch?v=tNa99PG8hR8

用于学习如何使用 wikepedia 提供的数据表创建一个简单的机器学习程序,该数据表显示 3 种类型的郁金香,并且该程序应该区分彼此。不过现在,它应该只打印 0、50 和 100 的 3 种郁金香类型的预期结果。

我尝试重新下载 python(我正在使用 linux)但它没有解决问题。

import numpy as np
from sklearn.datasets import load_iris
from sklearn import tree

iris = load_iris()
test_idx = [0, 50, 100]

# training data
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)

# testing data
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]

clf = tree.DecisionTreeClassifier()
clf.fit(train_data, train_target())

print test_target

该程序应该在模型完成训练后显示将用于测试的训练数据的目标数据显示

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    clf.fit 中的train_target 中删除(),添加圆括号将使其成为可调用对象

    【讨论】:

      【解决方案2】:

      你的错误

      TypeError: 'numpy.ndarray' 对象不可调用

      表示您在未实现它的对象上使用()operator(在本例中为 numpy.ndarray)。

      一个简单的例子是尝试执行以下操作:

      int i = 0;
      print(i())
      

      这不起作用,因为 int 没有实现 () 运算符,因此不可调用。

      修复你的错误:

      这条线(正如@Oswald 所说):

      clf.fit(train_data, train_target())
      

      应该是这样的:

      clf.fit(train_data, train_target)
      

      【讨论】:

      • 非常感谢!它解决了问题!
      猜你喜欢
      • 2021-02-23
      • 2019-09-04
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多