Numpy数组切片、bool索引、掩码和花哨索引
数组切片(slice)
数组切片的公式为 my_array[start: end: step, start: end: step]
#示例1:
import numpy as np
#设置随机种子
np.random.seed(0)
#初始化一个维度为3x4的数组
a = np.random.randint(0,10,(3,4))
#取出a数组前2行和前2列组成的数组
print(a)
print(a[0:2:1, 0:2:1])
#输出如下
[[5 0 3 3]
[7 9 3 5]
[2 4 7 6]]
[[5 0]
[7 9]]
#可以看到,对a取切片结果直观上就是取出数组中的一部分
在实际应用中,根据需要可以对r_start: r_stop: r_step句式进行简化,列的切片索引也是一样
依然以数组a作为演示:
简化操作 | 等价的完整操作 |
---|---|
: : -1 | end: 0: -1,表示反向遍历 |
: | 0: end: 1,表示正向遍历 |
: a | 0: a: 1,表示取该轴上的前a个元素 |
#行倒序排列并且取所有的列
print(a[::-1,:])
#与数组元素索引一起使用,取第一行并且取前2列
print(a[1,:2])
#输出如下:
[[