Şekil 100x100x100 bir histogram göz önüne alındığında, a ve b en yüksek 2 değerini ve bunların endekslerini (a1, a2, a3) ve (b1, b2, b3) bulmak istiyorum), örneğin:Bir ndarray'da N en yüksek değerlerin indekslerini alın
hist[a1][a2][a3] = a
hist[b1][b2][b3] = b
Biz kolayca hist.max() ile en yüksek değeri elde edebilirsiniz, ama nasıl bir ndarray X en yüksek değerler elde edebilirsiniz?
Bir normalde değer endekslerini almak için np.argmax kullandığı anlıyoruz, ancak bu durumda:
hist.argmax().shape =() # single value
for i in range(3):
hist.argmax(i).shape = (100, 100)
nasıl bir şekil alabilir (3), boyut başına bir değere sahip bir tanımlama grubu? numpy.unravel_index
kullanarak dizinin şekline göre
sayesinde düzgün argpartition ve unravel_index nasıl kullanılacağını çözemedim, şimdi çok mantıklı. Cevabınızı kabul ettiniz, ancak @ atomh33ls cevabını güncellediyse, 2 çözümü kıyaslayacağım :) – Fandekasp
[Benchmark testi] (https://gist.github.com/Fandekasp/20d428684a65b32d7c02): arg partition hızlıdır :) – Fandekasp