TypeError:0-d数组Python上的迭代

2024-05-13 03:54:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个非常基本的近邻计算。我基本上想看看t是什么样子,但我得到了这个类型的错误。当我要求函数返回时,它说了。当我让它转过来列出时,它抛出了“TypeError:iteration over a 0-d array Python”

请问我该怎么处理?

...

t = np.array(map(lambda v:
             map(lambda w: distance(v, w, L), x_train.values),
             x_test.values)) 

...

完整跟踪: enter image description here


Tags: lambda函数test类型map错误nptrain
1条回答
网友
1楼 · 发布于 2024-05-13 03:54:05

问题是np.array不接受迭代器,您需要首先转换为list,如下所示:

t = np.array(list(map(lambda v: map(lambda w: distance(v, w, L),
                      x_train.values), x_test.values)))

根据numpy.arraydocumentation,所需参数必须是:

An array, any object exposing the array interface, an object whose array method returns an array, or any (nested) sequence.

或者,使用^{}并记住提供dtype,例如dtype=float

相关问题 更多 >