python - 即使使用 1 行/2 列数组,也在 python 中迭代 Numpy 数组行

标签 python arrays numpy row enumerate

我正在尝试遍历 numpy 数组的行。该数组可能包含两列和多行,如 [[a, b], [c, d], ...],或者有时是单行,如 [a, b]

对于一维数组,当我使用 enumerate 遍历行时,python 生成单个元素 a 然后 b 而不是一次完整的行 [a, b]

如何以与二维情况相同的方式迭代一维情况?

最佳答案

无论如何,Numpy 都会迭代第一个维度。在迭代之前检查形状。

>>> x = np.array([1, 2])
>>> x.ndim
1

>>> y = np.array([[1, 2], [3, 4], [5, 6]])
>>> y.ndim
2

可能最简单的方法是始终包装对 np.array 的调用:

>>> x = np.array(x, ndmin=2, copy=False)
>>> y = np.array(y, ndmin=2, copy=False)

这将根据需要在您的数组中添加一个形状为 1 的维度。它的优点是您的输入甚至不必是数组,只需可以转换为数组的内容即可。

另一种选择是使用 atleast_2d功能:

>>> x = np.atleast_2d(x)

综上所述,您可能会通过尝试普通 python 循环而牺牲掉使用 numpy 的大部分好处。尝试将您的操作矢量化。

关于python - 即使使用 1 行/2 列数组,也在 python 中迭代 Numpy 数组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62140913/

相关文章:

python - 如何修复多次尝试后未知登录的问题

python - 如何将输出转换为json格式?

python - gae、python、onesignal --- onesignal 玩家标签不会在仪表板上更新?

c++不在数组边界中的元素的值是什么

python - 存储这些向量但在 Python 中使用哪种数据结构

python - 如何对列表中元素的所有实例进行索引、删除和计数?

arrays - 二维数组,其中每个元素都是类元素

arrays - Spark - 如何将元素添加到结构数组

python - 逐行比较二维数组

python - np.fft.ifft2 将图像完全变黑