TypeError:在0维数组Python上进行迭代

发布于 2021-01-29 14:55:15

我正在尝试编写一个非常基本的最近邻居计算。我基本上想看看t是什么样子,但出现此类型错误。当我要求功能返回时,它说“”。当我要求它列出来时,抛出“
TypeError:在0维数组Python上进行迭代”

我该如何解决?

...

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

...

完整跟踪:
在此处输入图片说明

关注者
0
被浏览
205
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    根据numpy.array
    文档,必需的参数必须是:

    数组,任何公开数组接口的对象,其数组方法返回数组的对象或任何(嵌套)序列。

    或者,使用numpy.fromiter并记住提供dtype,例如dtype=float



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看