正向递增,反向递减
语法:np01[index]
根据索引查询:np01[index]
根据索引修改数据:np01[index]=值
np04=np.array([2,5,4,6,7,8,3,2,68,9]) print(np04[4])#7一维数组高级索引
语法:
np01[索引数组]
np01=np.array([9,8,7,6,5,4,3,2,1,0])
print("---------高级索引----------------")
index01=np.array([1,5,8])# 索引数组==先把要求几个数的索引创建为数组
print(np01[index01])#[8 4 1]
一维数组的布尔索引
1.利用布尔索引获取值:False:不获取 True:获取
2.和比较运算符结合使用
np01=np.array([9,-4,3,-8,2])
print("布尔索引")
index_01=np.array([False,False,True,False,False])
print(np01[index_01])#-8
print(np01<0)
#要所有小于0的
index_02=np.array([False,False,True,False,False])
boolean_index=np01<0
print(boolean_index)#[False True False True False]
print(np01[boolean_index])#[-4 -8]
二维数组基础索引
语法:np01[行][列]
查询和修改数据
list01=[
[3,4,6,8,2],
[8,4,2,44,63],
[3,45,67,78,8],
[35,4,67,7,88]
]
np05=np.array(list01)
print(np05[3][3])#7
二维数组的高级索引
语法:
数组:np01[行索引数组,列索引数组]
列表:np01[list,list]
混合:np01[list,数组] [数组,list]
np02=np.arange(5,25).reshape(4,5)#创建二维数组
print(np02)
'''
[[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]'''
print("-----1----高级索引---使用数组-------------")
row_index=np.array([0,1,2,3])
col_index=np.array([1,2,3,4])
print(np02[row_index,col_index])#[ 6 12 18 24]
print("-----2----高级索引---使用列表-------------")
row_list=[0,1,2,3]
col_list=[1,2,3,4]
print(np02[row_list,col_list])#[ 6 12 18 24]
print("-----3----高级索引---混合使用-------------")
print(np02[row_list,col_index])#[ 6 12 18 24]
print(np02[row_index,col_list])#[ 6 12 18 24]
二维数组的布尔索引
1。np.ix_()计算笛卡尔乘积
2.np01[笛卡尔乘积]
np02=np.arange(5,25).reshape(4,5)
print(np02)
'''[[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]'''
print("----------基础所引------------")
print(np02[0:2,1:4])
print("-----------布尔索引------------------")
row_index=np.array([True,True,False,False])#4行
col_index=np.array([False,True,True,True,False])#5列
boolean01=np.ix_(row_index,col_index)#笛卡尔乘积
print(np02[boolean01])
'''[[ 6 7 8]
[11 12 13]]'''
#创建一个随机数组,取里面大于5的所有数
np03=np.random.randint(20,size=(4,5))
print(np03)
"""[[11 2 0 3 19]
[ 3 3 17 14 14]
[17 6 2 6 7]
[16 12 5 1 16]]"""
boolean_index02=np03>5
print(np03[boolean_index02])
print("==========================")
2.numpy的切片
一维数组基础切片
语法:np01[index01 : index02] 左开右闭
正向递增,反向递减,
一正一负,一负一正 都可以
np04=np.array([2,5,4,6,7,8,3,2,68,9]) print(np04)#[11 5 4 6 7 8 3 2 68 9] print(np04[2:7])#[4 6 7 8 3] print(np04[2:-3])#[4 6 7 8 3] print(np04[-8:7])#[4 6 7 8 3] print(np04[-8:-3])#[4 6 7 8 3]二维数组基础切片
语法:np01[行01:行02,列01:列02] 左开右闭
要查询所有行或者所有列,直接不写列和行
list01=[
[3,4,6,8,2],
[8,4,2,44,63],
[3,45,67,78,8],
[35,4,67,7,88]
]
np05=np.array(list01)
print(np05[1:3,1:3])
'''[[ 4 2]
[45 67]]'''
高级切片
语法:
np01[元组,切片] eg:np04[tuple01,1:5]
需要哪一行元组里面就放哪一行
np04=np.arange(20).reshape(4,5)
print(np04)
'''[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]]'''
print("------------基础切片----------------")
print(np04[0:2,1:5])
'''[[1 2 3 4]
[6 7 8 9]]'''
print("--------------高级切片---------------------")
tuple01=(0,1)
print(np04[tuple01,1:5])
'''[[1 2 3 4]
[6 7 8 9]]'''
tuple02=(0,1)
print(np04[tuple01,1:3])
"""[[1 2]
[6 7]]"""



