【1.3】Numpy学习-数组索引和切片

数组基本索引和切片

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]



猜你喜欢

转载自blog.csdn.net/weixin_30935137/article/details/80849165
今日推荐