NumPy数组切片(Slicing)
NumPy是Python中用于科学计算的一个库,它提供了对大规模多维数组和矩阵的支持。切片(slicing)是从这些数组中提取子数组的一个强大工具。
基本切片语法
基本的切片语法是start:stop:step
,它可以用于一维和多维数组。让我们一步步来理解。
一维数组的切片
假设我们有一个一维NumPy数组:
import numpy as np
arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
arr[start:stop:step]
:选择从索引start
到索引stop
(不包括stop
)的元素,步长为step
。
示例:
print(arr[2:7]) # [2 3 4 5 6]
print(arr[2:7:2]) # [2 4 6]
print(arr[:5]) # [0 1 2 3 4]
print(arr[5:]) # [5 6 7 8 9]
print(arr[::2]) # [0 2 4 6 8]
print(arr[::-1]) # [9 8 7 6 5 4 3 2 1 0] 逆序
多维数组的切片
对于多维数组,切片操作适用于每一个维度。假设我们有一个二维数组:
arr_2d = np.array([
[0, 1, 2, 3