Python数据分析:numpy高级索引

Python数据分析:numpy高级索引

整数数组索引:
import numpy as np 
 
x = np.array([[1,  2],
              [3,  4], 
              [5,  6]]) 
# 取出x中(0,0),(1,1),(2,0)处的元素
y = x[[0,1,2],
      [0,1,0]]  
print (y)

运行结果:
在这里插入图片描述

import numpy as np 
 
x = np.array([[  0,  1,  2],
              [  3,  4,  5],
              [  6,  7,  8],
              [  9,  10,  11]])  
print (x)
print ('--------------------')
rows = np.array([[0,0],[3,3]]) 
cols = np.array([[0,2],[0,2]]) 
# 取出矩阵四个角(0,0),(0,2),(3,0),(3,2)位置的元素
y = x[rows,cols]  
print (y)

运行结果:
在这里插入图片描述

布尔索引:通过布尔运算来获取符合指定条件的元素的数组
import numpy as np 
 
x = np.array([[  0,  1,  2],
              [  3,  4,  5],
              [  6,  7,  8],
              [  9,  10,  11]])  
print (x)
print ('--------------------')
# 打印出大于 5 的元素  
print (x[x >  5])

运行结果:
在这里插入图片描述

import numpy as np 
 
a = np.array([np.nan,  1,2,np.nan,3,4,5])  
#运用 ~(取补运算符)过滤NaN
print (a[~np.isnan(a)])

运行结果:
在这里插入图片描述

花式索引:利用整数数组进行索引,根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应位置的元素;如果目标是二维数组,那么就是对应下标的行。
import numpy as np 
 
x=np.arange(32).reshape((8,4))
print(x)
print ('--------------------')
# 取出原数组中对应下标的行
print (x[[4,2,1,7]])
print ('--------------------')
# 传入多个索引数组,取出1,5,7,2下标所对应的行,并按0,3,1,2的顺序按列排序
print (x[np.ix_([1,5,7,2],[0,3,1,2])])

运行结果:
在这里插入图片描述
参考:http://www.runoob.com/numpy

猜你喜欢

转载自blog.csdn.net/weixin_41792682/article/details/89465767