numpy选取元素学习,切片

参考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])

猜你喜欢

转载自blog.csdn.net/u012911347/article/details/82024437