Numpy库002 索引和切片
1、一维数组的索引和切片
与python列表几乎一样
import numpy as np
a=np.arange(10)
print(a)#[0 1 2 3 4 5 6 7 8 9]
#索引
print(a[1])#1
print(a[-1])#9
#切片
print(a[:9])#[0 1 2 3 4 5 6 7 8]
print(a[2:5])#[2 3 4]
print(a[::-1])#[9 8 7 6 5 4 3 2 1 0]
2、多维数组的索引与切片
import numpy as np
a=np.random.randint(0,10,size=(3,3,4))
print(a)
'''
[[[8 1 3 0]
[5 3 6 3]
[5 8 8 6]]
[[2 2 1 9]
[6 0 1 0]
[1 7 2 4]]
[[9 0 4 0]
[6 5 5 0]
[9 9 9 2]]]
'''
#索引
print(a[0]) #得到一个模块
'''
[[8 1 3 0]
[5 3 6 3]
[5 8 8 6]]'''
print(a[0,0])#得到一行[8 1 3 0]
print(a[0,0,0])#得到一个元素8
#切片
print(a[0:2])#连着切
'''
[[[8 1 3 0]
[5 3 6 3]
[5 8 8 6]]
[[2 2 1 9]
[6 0 1 0]
[1 7 2 4]]]'''
print(a[[0,2]])#间段切
'''
[[[8 1 3 0]
[5 3 6 3]
[5 8 8 6]]
[[9 0 4 0]
[6 5 5 0]
[9 9 9 2]]]'''
#内层 !维度之间用逗号隔开,间隔切片用[,,]
print(a[0,2,3])#获取第0个模块第2行第3列 6
print(a[[0,2],[2,1]])#获取第0个模块的第2行,第2个模块的第1行
'''
[[5 8 8 6]
[6 5 5 0]]'''
print(a[[0,1],[1,1],[0,0]])#获取(0,1,0)和(1,1,0)两个数
'''[[[8]
[5]]'''
print(a[0:2,0:2,0:1])#获取0-2模块,0-2行,0列
'''
[[2]
[6]]]'''
注意
a[[1,2],[4,5]]与a[1:3,4:6]的区别
前者是第一行第四列和第二行第五列
后者是第一行第四第五列,第二行的第四第五列