如何在 Numpy 中迭代列
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 模块可用于以下操作,例如线性代数、矩阵和傅里叶变换。