数组基本索引和切片
import numpy as np
#一维数组索引和切片
ar = np.arange(20)
print(ar)
print(ar[4])
print(ar[3:6])
# 二维数组索引和切片
ar = np.arange(16).reshape(4,4)
print(ar,'数组轴数为%i' %ar.ndim)
print('--------------')
print(ar[2],'数组轴数为%i' %ar[2].ndim)
print(ar[2][1]) # 二次索引,得到一维数组中的一个值
print('--------------')
print(ar[1:3],'数组轴数为%i' %ar[1:3].ndim ) #切片为两个一维数组组成的二维数组
结果如下:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
4
[3 4 5]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]
[12 13 14 15]] 数组轴数为2
--------------
[ 8 9 10 11] 数组轴数为1
9
--------------
[[ 4 5 6 7]
[ 8 9 10 11]] 数组轴数为2
布尔型索引及切片
ar = np.arange(12).reshape(3,4)
i = np.array([True,False,True])
j = np.array([True,True,False,False])
print(ar)
print('---------------')
print(i)
print('---------------')
print(j)
print('---------------')
print(ar[i,:])
print('---------------')
print(ar[:,j])
print('---------------')
m = ar>5
print(m) # m是判断矩阵
print(ar[m]) # 用判断矩阵去筛选ar数组中>5的元素
结果如下:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
---------------
[ True False True]
---------------
[ True True False False]
---------------
[[ 0 1 2 3]
[ 8 9 10 11]]
---------------
[[0 1]
[4 5]
[8 9]]
---------------
[[False False False False]
[False False True True]
[ True True True True]]
[ 6 7 8 9 10 11]