gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:26:31 27 4
gpt4 key购买 nike

我正在尝试遍历 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com