numpy中的索引用法


索引

argmin--最小值索引,argmax--最大值索引

import numpy as np
x = np.random.normal(0,1,size=1000000)
np.min(x)
-4.736102442527367
np.argmin(x)
258131
x[258131]
-4.736102442527367
np.max(x)
4.788201736638607
np.argmax(x)
24635
x[24635]
4.788201736638607

排序和索引

x = np.arange(16)
x
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15])

shuffle--隨機打亂數組

np.random.shuffle(x)
x
array([14, 10,  7,  8, 11,  0, 13,  5,  2,  3,  4, 15, 12,  9,  6,  1])

多維數組排序

x = np.random.randint(0,10,size=(4,4))
x
array([[7, 8, 0, 9],
       [5, 1, 8, 2],
       [3, 4, 0, 3],
       [6, 0, 3, 0]])
np.sort(x)#這里存在axis參數,與聚合函數中的原理一致,這里默認按行排序
array([[0, 7, 8, 9],
       [1, 2, 5, 8],
       [0, 3, 3, 4],
       [0, 0, 3, 6]])

按索引進行排序

x = np.arange(1,10)
np.random.shuffle(x)
x
array([4, 9, 7, 2, 8, 1, 3, 6, 5])
np.argsort(x)#這里是按照索引方式排序,3指的是原數組中最小值的索引為3
array([5, 3, 6, 0, 8, 7, 2, 4, 1], dtype=int64)

paritition--快速排序

傳入一個標定值(這里是傳入索引),返回一個以標定點划分的邊界點,一邊比標定點小,另外一邊比標定點大

p = np.array([1,2,3,4,5,6,7,44,9,4])
p
array([ 1,  2,  3,  4,  5,  6,  7, 44,  9,  4])
np.partition(p,7)
array([ 2,  1,  3,  4,  4,  5,  6,  7,  9, 44])



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM