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

时间:2018-12-31 03:43:19

标签: python scikit-learn

我有一个TypeError:'numpy.ndarray'对象是不可调用的,我现在知道这是什么意思。我目前正在关注本教程:https://www.youtube.com/watch?v=tNa99PG8hR8

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

我尝试重新下载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

该程序应该在模型完成训练后显示训练数据的目标数据显示

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

您的错误

  

TypeError:“ numpy.ndarray”对象不可调用

表示您在未实现该对象的对象上使用()运算符(在本例中为numpy.ndarray)。

一个简单的示例将尝试执行以下操作:

int i = 0;
print(i())

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

要纠正您的错误:

该行(如@Oswald所说):

clf.fit(train_data, train_target())

应如下所示:

clf.fit(train_data, train_target)