我有一个TypeError:"numpy.ndarray"对象不可调用,我现在知道这意味着什么。我目前正在遵循本教程: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
该程序应该显示训练数据的目标数据显示,这些数据将在模型完成训练后用于测试。
> 从clf.fit
train_target
中删除()
,添加圆括号将使其成为可调用的
你的错误
类型错误:"numpy.ndarray"对象不可调用
表示您在未实现它的对象(在本例中为 numpy.ndarray)上使用 ()
运算符。
一个简单的示例是尝试执行以下操作:
int i = 0;
print(i())
这不起作用,因为int
不实现()
运算符,因此不可调用。
要修正错误,请执行以下操作:
这行(如@Oswald所说):
clf.fit(train_data, train_target())
应如下所示:
clf.fit(train_data, train_target)