numpy的Fancy Indexing和array比较详解
一:FancyIndexing
importnumpyasnp #FancyIndexing x=np.arange(16) np.random.shuffle(x) print(x)#打印所有的元素 print(x[2])#获取某个元素的值 print(x[1:3])#切片 print(x[3:9:2])#指定间距切片 index=[2,4,7,9]#索引数组 print(x[index])#获取索引数组中的元素的值 ind=np.array([[0,2],[1,4]])#索引二维数组 print(x[ind])##获取索引二维数组中的元素的值 print("---------------------") X=x.reshape(4,-1) print(X) ind1=np.array([1,3])#行的索引 ind2=np.array([2,0])#列的索引 print(X[ind1,ind2]) print(X[:-2,ind2]) bool_index=[True,False,True,False]#True就取当前列,False就不取 print(X[:-1,bool_index])
FancyIndexing应用在一维数组
x=np.arange(16) x[3]#3 x[3:9]#array([3,4,5,6,7,8]) x[3:9:2]#array([3,5,7]) [x[3],x[5],x[7]]#[3,5,7] ind=[3,5,7] x[ind]#array([3,5,7]) ind=np.array([[0,2],[1,3]]) x[ind] """ array([[0,2], [1,3]]) """
FancyIndexing应用在二维数组
X=x.reshape(4,-1) """ array([[0,1,2,3], [4,5,6,7], [8,9,10,11], [12,13,14,15]]) """ row=np.array([0,1,2]) col=np.array([1,2,3]) #1行2列,2行3列,3行4列 X[row,col]#array([1,6,11]) #前2行2,3,4列 X[:2,col] """ array([[1,2,3], [5,6,7]]) """ col=[True,False,True,True] X[0,col]#array([0,2,3])
二:array比较
importnumpyasnp x=np.arange(16) print(x) print(x<3)#返回的是bool数组 print(x==3) print(x!=3) print(x*4==24-4*x) print(x+1) print(x*2) print(x/4) print(x-10) print(np.sum(x<3))#返回小于3的元素个数 print(np.any(x==0))#只要向量x中有等于0的就返回true print(np.all(x==0))#只有向量x中全部等于0才返回true print(x[x<5])#因为x<5返回的是bool数组,我们取true的元素的值 #二维的同样支持 print("----------------------") X=x.reshape(4,-1) print(X) print(X<3) print(x==3) print(np.sum(X<4)) print(np.count_nonzero(X<5))#返回X中小于5的不等于0的个数 print(np.any(X==0))#只要向量x中有等于0的就返回true print(np.all(X==0))#只有向量x中全部等于0才返回true print(np.sum(X<4,axis=1))#沿着列的方向,计算每行小于4的个数 print(np.sum((X>3)&(X<10)))#计算X中大于3并且小于10的个数 print(np.sum(~(X==0)))#计算X中不等于0的个数 print(X[X[:,3]%3==0,:])#因为X[:,3]%3==0返回的是一个向量,元素为true,false,false,true,所以最后取第一行和最后一行
到此这篇关于numpy的FancyIndexing和array比较详解的文章就介绍到这了,更多相关numpyFancyIndexing和array比较内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!