我有一个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
该程序应该在模型完成训练后显示训练数据的目标数据显示
答案 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)