在Python的NumPy库中,数组切片操作通过指定起始索引、结束索引和步长来实现,语法与Python列表切片一致。以下是核心要点:
一、基础语法
切片操作的基本格式为:
array[start:end:step]
-
start :起始索引(包含),默认为0
-
end :结束索引(不包含),默认为数组长度
-
step :步长(间隔),默认为1
二、示例操作
-
一维数组切片
import numpy as np arr = np.arange(10) print(arr[2:6]) # 输出: [2 3 4 5] # 从索引2到5(不包含6) print(arr[1::2]) # 输出: [1 3 5 7 9] # 从索引1开始,步长为2 print(arr[:8:3]) # 输出: [0 3 6] # 从开始到索引8(不包含8),步长为3
-
多维数组切片
- 二维数组 :
arr_2d = np.array([[0,1,2], [3,4,5], [6,7,8]]) print(arr_2d[1:3, 1:3]) print(arr_2d[:, 1]) # 输出: [1 4 7] # 选择所有行的第2列 print(arr_2d[0, :]) # 输出: [0 1 2] # 选择第0行的所有元素
- 二维数组 :
-
边界省略规则
-
左边界省略:
arr[:e0]
等价于arr[0:e0]
-
右边界省略:
arr[s0:]
等价于arr[s0:len(array)]
-
示例:
arr[1:3]
等价于arr[1:len(arr):1]
-
三、注意事项
-
负索引 :从数组末尾开始计数,如
arr[-1]
获取最后一个元素 -
步长为负数 :反向切片,如
arr[::-1]
反转数组
通过以上方法,可灵活地提取NumPy数组的子集,满足数据分析、处理等需求。