Ann*_*ang 5 python arrays iterator numpy typeerror
我正在尝试编写一个非常基本的最近邻居计算。我基本上想看看t是什么样子,但出现此类型错误。当我要求功能返回时,它说“”。当我要求它列出来时,抛出“ TypeError:在0维数组Python上进行迭代”
我该如何解决?
...
t = np.array(map(lambda v:
map(lambda w: distance(v, w, L), x_train.values),
x_test.values))
...
Run Code Online (Sandbox Code Playgroud)
问题是np.array不带迭代器,需要先转换为list,如下所示:
t = np.array(list(map(lambda v: map(lambda w: distance(v, w, L),
x_train.values), x_test.values)))
Run Code Online (Sandbox Code Playgroud)
根据numpy.array 文档,必需的参数必须是:
数组,任何公开数组接口的对象,其数组方法返回数组的对象或任何(嵌套)序列。
或者,使用numpy.fromiter并记住提供dtype,例如dtype=float。
可以使用 加载 0 维 numpy 数组arr1 = np.load(..., allow_pickle=True)。要访问存储为 np.array 的项目,请使用:
arr1.item()
Run Code Online (Sandbox Code Playgroud)
例如,如果存储的类型是 a,dict d1 = {'item1':42, 'item2':np.array(1,3)}我们可以获得这样的值:v1 = arr1.item()['item2']。
重要提示:使用allow_pickle=Trueis 加载会带来安全风险,不建议使用。