如何对 2d numpy 数组进行切片(带有示例)


您可以使用以下方法对 2D NumPy 数组进行切片:

方法 1:选择 2D NumPy 数组中的特定行

 #select rows in index positions 2 through 5
arr[ 2 : 5 ,:]

方法 2:选择 2D NumPy 表中的特定列

 #select columns in index positions 1 through 3
arr[:, 1 : 3 ]

方法 3:选择 NumPy 2D 表中的特定行和列

 #select rows in range 2:5 and columns in range 1:3
arr[ 2 : 5,1 :3 ]

以下示例展示了如何在实践中通过以下 2D NumPy 数组使用每种方法:

 import numpy as np

#create NumPy array
arr = np. arange ( 24 ). reshape ( 6,4 )

#view NumPy array
print (arr)

[[ 0 1 2 3]
 [4 5 6 7]
 [8 9 10 11]
 [12 13 14 15]
 [16 17 18 19]
 [20 21 22 23]]

示例 1:选择 2D NumPy 数组的特定行

我们可以使用以下语法来选择索引位置 2 到 5 中的行:

 #select rows in index positions 2 through 5
arr[ 2 : 5 ,:]

array([[ 8, 9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19]])

请注意, 2:5语法告诉 NumPy 选择第 2 行第 5 行,但不包括第 5 行。

所以这个语法从索引位置为2、3和4的行中选择所有值。

示例 2:从 2D NumPy 数组中选择特定列

我们可以使用以下语法来选择索引位置 1 到 3 处的列:

 #select columns in index positions 1 through 3
arr[, 1 : 3 ]

array([[ 1, 2],
       [5, 6],
       [9, 10],
       [13, 14],
       [17, 18],
       [21, 22]]))

请注意, 1:3语法告诉 NumPy 选择第 1 列第 3 列,但不包括第 3 列。

所以这个语法从索引位置为1和2的列中选择所有值。

示例 3:选择 NumPy 2D 数组的特定行和列

我们可以使用以下语法来选择索引位置 2 到 5 中的行以及索引位置 1 到 3 中的列:

 #select rows in 2:5 and columns in 1:3
arr[ 2 : 5,1 :3 ]

array([[ 9, 10],
       [13, 14],
       [17, 18]])

此语法返回 2D NumPy 数组中行索引位置 2 到 5 和列索引位置 1 到 3 之间的所有值。

其他资源

以下教程解释了如何在 NumPy 中执行其他常见操作:

如何在 NumPy 数组中查找值索引
如何从 NumPy 数组中获取特定列
如何向 NumPy 数组添加列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注