np.nditer 自动逐行迭代数组的元素。有没有办法按列迭代数组的元素?
x = np.array([[1,3],[2,4]])
for i in np.nditer(x):
print i
# 1
# 3
# 2
# 4
我想要的是:
for i in Columnwise Iteration(x):
print i
# 1
# 2
# 3
# 4
我最好的选择是在进行迭代之前转置我的数组吗?
请您参考如下方法:
为了完整起见,您不必在遍历元素之前转置矩阵。使用 np.nditer,您可以指定如何遍历矩阵的顺序。默认值通常是行优先或类似 C 的顺序。您可以覆盖此行为并选择您想要的列优先或类似 FORTRAN 的顺序。在使用 np.nditer 时,只需指定一个附加参数 order 并将此标志设置为 'F':
In [16]: x = np.array([[1,3],[2,4]])
In [17]: for i in np.nditer(x,order='F'):
....: print i
....:
1
2
3
4
您可以在此处阅读有关如何控制迭代顺序的更多信息:http://docs.scipy.org/doc/numpy-1.10.0/reference/arrays.nditer.html#controlling-iteration-order
