python - TypeError:迭代 0-d 数组 Python

标签 python arrays numpy iterator typeerror

我正在尝试编写一个非常基本的最近邻计算。我基本上想看看 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

最佳答案

问题是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 documentation , 所需的参数必须是:

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

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

关于python - TypeError:迭代 0-d 数组 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48643256/

相关文章:

python - 我如何用pafy为进度条制作线程

python - 使用 python paho.mqtt 从 docker 容器通过 ssh 发送数据

python - PDB:在控制台中出现异常 - 完整堆栈跟踪

C语言将一个数组的元素范围复制到另一个数组

python - 重写函数以递归方式执行(python)

ios - 当对象包含其他对象的数组时,如何解析 JSON?

python - 高效地在多个维度上找到邻居并根据接近度计算值的总和

python - 关于 recarray 多字段索引的文档

python - 合并 sift 描述符矩阵,numpy 数组

javascript - Array.includes 不能像 string.includes 一样工作