##### ndarray 索引 - 在 NumPy 数组中,索引是用来访问单个元素的方法。索引是从 0 开始的整数,用于指定元素在数组中的位置。使用方括号 `[]` 来进行索引操作。 - 对于一维数组,使用一个索引获取一个元素,例如:`arr[2]`。 - 对于多维数组,使用逗号分隔的索引序列来获取元素,从高维到低维,例如:`arr[1, 2]` 表示获取第二行第三列的元素。 - 索引还可以使用负数,表示从数组的末尾开始计算位置,例如:`arr[-1]` 表示最后一个元素。 - 布尔数组索引 `arr[布尔运算]` - 整数数组索引 `arr[[行索引],[列索引]]` ```python import numpy as np # 一维数组索引 arr1d = np.array([1, 2, 3, 4]) print(arr1d[2]) # 输出:3 # 多维数组索引 arr2d = np.array([[1, 2, 3], [4, 5, 6]]) print(arr2d[1, 2]) # 输出:6 # 布尔数组索引 bool_arr = arr2d > 3 print(arr2d[bool_arr]) # 输出:[4 5 6] # 整数数组索引 indices = np.array([0, 1]) print(arr2d[indices, :]) # 输出:[[1 2 3] # [4 5 6]] ``` ##### ndarray 切片 - 切片是一种获取数组的子数组的方法。它通过指定开始索引、结束索引和步长来选取连续的元素。 - 切片使用冒号 `:` 进行表示,例如:`arr[1:4]` 表示获取索引从 1 到 3 的元素。 - 切片的起始索引默认为 0,结束索引默认为数组的长度。 - 切片也可以使用负数索引和步长,例如:`arr[::-1]` 表示将数组反转。 - `a[:, None]` 可以将一维数组变为具有单列的二维数组。 ```python import numpy as np # 一维数组切片 arr1d = np.array([1, 2, 3, 4, 5, 6]) print(arr1d[1:4]) # 输出:[2 3 4] print(arr1d[::2]) # 输出:[1 3 5] # 多维数组切片 arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(arr2d[1:3, 0:2]) # 输出: # [[4 5] # [7 8]] # 切片步长 print(arr1d[1:5:2]) # 输出:[2 4] print(arr2d[::2, 1]) # 输出:[2 8] ```