如何在 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 迭代 nditer(),该函数接受参数 - arr.T() 来转置列的索引。最后,在 print 函数中使用变量 col 以获取结果。
import numpy as ny # Create a sample 2D array arr = ny.array([[10, 20, 30], [40, 50, 60], [70, 80, 90], [110, 120, 130]]) print("Iteration of all the columns:") # Iterate over columns using 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 the module import numpy as np # create the list matrix arr = np.array([[1, 2, 3 ], [4, 5, 6], [7, 8, 9]] ) # Transpose array matrix 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 array representation arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # operate each column using the function def p_column(col): print(col) # Iterate the column 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 # Create the 2D array arr = np.array([[1, 5, 9], [13, 14, 21], [25, 29, 33]]) # Get the number of columns num_cols = arr.shape[1] # Initialize the column index col_index = 0 # Using a while loop iterates over each column 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 模块在以下操作中工作,例如线性代数、矩阵和傅里叶变换。