二维索引与切片简介
import numpy as np
arr = np.arange(28).reshape(7, 4)
1.索引某行或某列只用一个元素,多行用多行索引。
arr[2] # 行索引
arr[:, 3] # 列索引
arr[[1, 2, 4]] # 多行索引
2.索引具体元素时用逗号分隔行与列
arr[1, 3] # 第二行第三列的索引值
arr[[1, 2], [1, 2]] # 多元素索引(神奇索引)
3.选择数组快
arr[:2, :3] # 第1,2行中的第1,2,3列
4.选择不相邻的数组快
arr[[1, 2]][:, [0, 3]] # 行和列分别用两个方括号包含,方括号中内嵌方括号
Tips:
1.索引与切片仅提供原数组的视图,并不会复制数组。(牵一发而动全身)
2.索引([ , ])将符合条件的元素组成一个数组,即:多维变成一维;而切片([ : , : ])不会降维。
arr[0, :2] # 索引降维
arr[:, :1] # 切片不降维