📜  Python – 遍历 NumPy 中的列

📅  最后修改于: 2022-05-13 01:54:48.720000             🧑  作者: Mango

Python – 遍历 NumPy 中的列

Numpy (“ Numerical Python ”的缩写)是一个用于以快速有效的方式执行大规模数学运算的库。本文旨在向您介绍可用于迭代 2D NumPy数组中的列的方法。由于一维数组仅由线性元素组成,因此其中不存在行和列的区分定义。因此,为了执行这样的操作,我们需要一个len(ary.shape) > 1的数组。

要在Python环境中安装NumPy ,请在操作系统的命令处理器( CMD、Bash等)中键入以下代码:

我们将研究几种迭代数组/矩阵列的方法:-

方法一:

代码:在数组上使用原始 2D 切片操作来获得所需的列/列

import numpy as np
  
# Creating a sample numpy array (in 1D)
ary = np.arange(1, 25, 1)
  
# Converting the 1 Dimensional array to a 2D array 
# (to allow explicitly column and row operations)
ary = ary.reshape(5, 5)
  
# Displaying the Matrix (use print(ary) in IDE)
print(ary)
  
# This for loop will iterate over all columns of the array one at a time
for col in range(ary.shape[1]):
    print(ary[:, col])

输出:

[[ 0,  1,  2,  3,  4],
 [ 5,  6,  7,  8,  9],
 [10, 11, 12, 13, 14],
 [15, 16, 17, 18, 19],
 [20, 21, 22, 23, 24]])


[ 0  5 10 15 20]
[ 1  6 11 16 21]
[ 2  7 12 17 22]
[ 3  8 13 18 23]
[ 4  9 14 19 24]

解释:

在上面的代码中,我们首先使用np.arange(25)创建了一个包含 25 个元素 (0-24) 的线性数组。然后我们使用np.reshape()重塑(将 1D 转换为 2D)以从线性数组中创建 2D 数组。然后我们输出转换后的数组。现在我们使用了一个 for 循环,它将迭代x次(其中 x 是数组中的列数),我们使用range()和参数ary.shape[1] (其中shape[1] = 中的列数)一个二维对称阵列)。在每次迭代中,我们使用ary[:, col]从数组中输出一列,这意味着给出列号 = col的所有元素。

方法二:
在这种方法中,我们将转置数组以将每个列元素视为一个行元素(这又相当于列迭代)。

代码:

# libraries
import numpy as np
  
# Creating an 2D array of 25 elements 
ary = np.array([[ 0,  1,  2,  3,  4],
                [ 5,  6,  7,  8,  9],
                [10, 11, 12, 13, 14],
                [15, 16, 17, 18, 19],
                [20, 21, 22, 23, 24]])
  
  
# This loop will iterate through each row of the transposed 
# array (equivalent of iterating through each column)
for col in ary.T:
    print(col)

输出:

[ 0  5 10 15 20]
[ 1  6 11 16 21]
[ 2  7 12 17 22]
[ 3  8 13 18 23]
[ 4  9 14 19 24]

解释:
首先,我们使用np.array()创建了一个 2D 数组(与前面的示例相同)并用 25 个值对其进行初始化。然后我们转置数组,使用ary.T依次切换行与列和列与行。然后我们遍历这个转置数组的每一行并打印行值。