Numpy 如何迭代列

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模块可以用于线性代数、矩阵和傅立叶变换等操作。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程