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()作为参数来转置列的索引。最后,使用变量col在print函数中获取结果。
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(),该函数将对输入数组的每一列进行切片并迭代。
示例
在下面的示例中,首先导入模块,然后在变量arr中创建二维数组表示。接下来,使用用户定义的函数对每一列进行操作,该函数接受名为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模块可以用于线性代数、矩阵和傅立叶变换等操作。