参考https://blog.csdn.net/LOUISLIAOXH/article/details/50207971的博客学习下numpy选取元素的操作:
import numpy as np
arr = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
# 完整切片
# 取索引为0(包含)到索引为2(不包含)之间的元素且步长为1
print(arr[0:2:1]) # [0 1]
# 取索引为0(包含)到索引为10(不包含)之间的元素且步长为2
print(arr[0:10:2]) # [0 2 4 6 8]
# 切片省略步长
#取索引为0(包含)到索引为2(不包含)之间的元素
print(arr[0:2]) # [0,1],默认步长1
# 省略结束索引
print(arr[1::2]) # [1 3 5 7 9]
# 对比上一行,索引可以为10,这样可以输出9,如果索引制定1到9,则索引不包含9
# 不过print(arr[10])肯定下标越界的,切片索引和这个不一样的
print(arr[1:9:2]) # [1 3 5 7]
print(arr[1:10:2]) # [1 3 5 7 9]
# 省略结束索引和步长,以下都是[1 2 3 4 5 6 7 8 9]
print(arr[1:])
print(arr[1::])
# 省略开始索引
print(arr[:2:1]) # [0 1],选取索引为0到2之间
# 省略开始索引及步长
print(arr[:2:]) # [0 1],选取索引为0到2之间
# 省略开始索引及结束索引
print(arr[::2]) # [0 2 4 6 8]
# 使用负数步长来翻转数组
print(arr[::-1]) # [9 8 7 6 5 4 3 2 1 0]
# 二维数组
tmp = [[1, 2, 3, 4, 5, 6],
[7, 8, 9, 10, 11, 12],
[71, 81, 91, 101, 111, 121]]
arr2 = np.asarray(tmp)
'''
[[ 1 2 3 4]
[ 7 8 9 10]]
'''
print(arr2[0:2, 0:4])