如何对 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 中执行其他常见操作: