Diyelim ki a
özgün dizidir ve b
eşleme kuralıdır. eşleme kuralı "değeri bulunabilir yeni vektörü hangi indeks de" ise, c
permütasyon b
ait ters olduğu a[c]
hesaplamamız gerekir diyor beri.
c = np.zeros(b.size, b.dtype)
c[b] = np.arange(b.size)
new_array = a[c]
Örnek: Ben oradan çözümlerden birini seçeceğiz böylece ters permütasyon hesaplanması, addressed in detail elsewhere bir [7, 8, 9]
ve b [1, 2, 0]
ise, bu [9, 7, 8]
döndürür. , 2 konumuna gitti
- 7 1 konumuna gitti sonuç doğrudur 0
konumlandırmak için gitti: Kontrol edelim. Bort önerdiği gibi a[b]
yaptıysak
, sonuç farklıdır [8, 9, 7]
, olurdu. sayılar orijinal dizideki nereden geldiğini Nitekim bu sürümde b
ait girişler ki:
- 9 pozisyondan geldi pozisyondan geldi 2
- 7 pozisyonunda 0
geldi
verdiğin örnek onun tersine eşittir bir permütasyon, bu nedenle ayrım kaybolur, konuyu geçinip belirleyin.
Eşleme kuralını anlamıyorum. 0, 3, 1, 2 mi demek istediniz? – kazemakase
'a = np.asarray ([1,0,0,1]); b = np.asarray ([0,3,1,2]); a [b] ' – Bort
@Bort Bu OP'nin istediği şeyi yapmaz: cevabımı gör. – FTP