如何在 Numpy 中迭代列

pythonnumpyprogramming

Numpy 代表 Numerical Python。它有助于解决数组上的数学运算。在 Python 中,我们有一些内置函数,例如 nditor()、T()、array()、shape[] 和 apply_along_axis(),它们将用于在 Numpy 中迭代列。

语法

示例中使用了以下语法-

nditer()

NumPy 模块包含用于迭代器对象的此内置函数。

T()

此函数指的是转置列数据框中的索引。

array()

这是 Python 中创建数组的内置函数。数组是通过收集相同数据类型的项目来定义的。

apply_along_axis()

apply_along_axis() 通过输入数组的 1D 切片运行给定函数,切片沿着我们选择的轴进行。

Shape[]

这用于获取名为 Numpy 的模块的维度。另外,获取 Pandas 模块的维度。

使用 nditer() 函数

程序使用 for 循环,其中变量通过内置函数 nditer() 和 T() 迭代 Numpy 中的列。

示例

在下面的示例中,我们将开始导入名为 numpy 的模块并将对象引用作为 ny。然后使用内置函数 array() 和 ny 创建 4*3 矩阵数组并将其存储在变量 arr 中。接下来,使用 for 循环,其中变量 col 迭代接受参数 arr.T() 的 nditer() 以转置列的索引。最后,在 print 函数中使用变量 col 来获取结果。

import numpy as ny
# 创建示例二维数组
arr = ny.array([[10, 20, 30], [40, 50, 60], [70, 80, 90], [110, 120, 130]])
print("Iteration of all the columns:")
# 使用 nditer 遍历列
for col in ny.nditer(arr.T):
    print(col)

输出

 Iteration of all the columns:
10
20
30
40
50
60
70
80
90
110
120
130

使用数组转置

该程序使用矩阵的概念,将矩阵按行转置为列,这样它将在 Numpy 中迭代列。

示例

在下面的示例中,通过导入模块开始程序,然后使用内置函数 array() 创建列表矩阵以存储在变量 arr 中。现在使用 for 循环转置输入数组矩阵,其中变量 col 在 arr.T 的帮助下迭代每一列。最后,我们在变量 col 的帮助下打印结果。

# 导入模块
import numpy as np
# 创建列表矩阵
arr = np.array([[1, 2, 3 ],
				[4, 5, 6],
				[7, 8, 9]]
				)
# 转置数组矩阵
for col in arr.T:
	print(col)

输出

 [1 4 7] 
 [2 5 8] 
 [3 6 9]

使用apply_along_axis()函数

该程序使用内置函数apply_along_axis(),它将对输入数组的给定函数进行切片,以在Numpy中迭代每一列。

示例

在下面的示例中,开始导入模块,然后在变量arr中创建2D数组表示。接下来,使用用户定义的函数操作每一列,该函数接受名为col的参数,该参数通过内置函数apply_along_axis()接收值,并将打印列。最后,apply_along_matrix() 接受以下参数-

  • p_column:这是作为命名函数定义的第一个参数,用于转置数组 arr.T(第三个参数)的每一列。

  • 0:第二个参数 0 指定应沿输入数组的第一个轴(列)应用函数。

  • arr.T:转置数组,这将有助于遍历列。

import numpy as np
# 2D 数组表示
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 使用函数操作每一列
def p_column(col):
    print(col)
# 迭代列
np.apply_along_axis(p_column, 0, arr.T)

输出

[1 2 3]
[4 5 6]
[7 8 9]

使用 While 循环

该程序使用 shape 方法获取 NumPy 模块的维度,并使用 while 循环迭代输入数组的每一列。

示例

在下面的示例中,开始导入模块并创建输入数组,以在变量 arr 中创建由行和列组成的数组列表。使用相同的变量,它将使用 Shape[] 获取数组的维度并将其存储在变量 num_cols 中。然后将变量 col_index 初始化为 0,显示初始索引值。接下来,使用 while 循环通过使用 < 运算符设置条件。然后使用切片和递增来生成结果。

import numpy as np
# 创建 2D 数组
arr = np.array([[1, 5, 9], [13, 14, 21], [25, 29, 33]])
# 获取列数
num_cols = arr.shape[1]
# 初始化列索引
col_index = 0
# 使用 while 循环遍历每一列
while col_index < num_cols:
    col = arr[:, col_index]
    print(col)
    col_index += 1

输出

 [ 1 13 25] 
 [ 5 14 29] 
 [ 9 21 33]

结论

我们讨论了解决这个问题的各种方法。我们看到了一些流行的 Numpy 迭代内置函数,即 nditer()、T() 和 shape[],它们有助于对列进行迭代。Numpy 模块可用于以下操作,例如线性代数、矩阵和傅里叶变换。


相关文章