Skip to main content
 首页 » 编程设计

python之按列迭代 numpy 数组

2025年05月04日10tuyile006

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