numpy.unravel_index() bir diziye bir şekil ve düz bir dizin alır ve dizide bu dizini temsil eden bir tuple döndürür. Ters mi var? El ile hesaplayabilirim, ama bu bir yerde yerleşik bir işlev olmalı gibi görünüyor ...NumPy, unravel_index() öğesinin tersine sahip mi?
cevap
(Mayıs 2011) yerleşik bir NumPy fonksiyonu ravel_multi_index
(Bu aynı zamanda kullanıcı Bi Rico tarafından bir açıklama anlatılan ama gerçekten bir cevap olarak görünmelidir) Sana ravel_multi_index` `kullanarak birine kabul cevabı güncellemek gerektiğini düşünüyorumçoklu endeksine sınır modlarını uygularken, düz endekslerin bir diziye endeksi dizisinin bir demet dönüştürür yoktur.
Yanıt numpy.ndarray.strides dosyasında yatar. Bu işleri http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.strides.html
Güvenilir değil. Dizilerden oluşan dilleri aldığınızda, numpy genellikle aynı verileri paylaşır ve hileleri hızlandırır. Arange (15) .reshape ((3,5)) .strides (bu güzel, bitişik bir dizi olacak) ve arange (35) .reshape ((7,5)) [1 :: 2,:]. . –
Doğru ve bunun görünmezliği gerçek bir acı olabilir. Ama kendiniz (burada olduğum gibi) adım adım hile yapmayı planlıyorsanız, umarız ki dizinin bitişik olduğunu garanti edebilirsiniz. – D0SBoots
Bkz:
def ravel_index(pos, shape):
res = 0
acc = 1
for pi, si in zip(reversed(pos), reversed(shape)):
res += pi * acc
acc *= si
return res
Bir komuta inşa değil, ama her zaman numpy varsayılan satır büyük indeksleme kullanılıyor varsayarak aşağıdaki pasajı kullandım:
np.sum(np.array(index_tuple[:-1])*np.array(a_matrix.shape[1:]))+np.array(index_tuple[-1])
fortan benzeri (kolon-ana) indeksleme için
, endeksleri sadece takas edilmesi gerekir:
np.sum(np.array(index_tuple[1:])*np.array(a_matrix.shape[:-1]))+np.array(index_tuple[0])
Yukarıda, index_tuple ve a_matrix, sırasıyla indekslenen, ilgilenilen indeksleri ve matrisi içeren bir tuple'dır. Bu, dilimler alındığında adımlarla ilişkili yukarıdaki sorunu içermez. numpy 1.6.0
yana
Sayısal 1,6'dan itibaren "numpy.ravel_multi_index", http://docs.scipy.org/doc/numpy/reference/generated/numpy.ravel_multi_index.html yerleşik bir komuttur, ancak bu soru oldukça eskidir. –
Teşekkürler, yeni komutu fark etmemiştim, bu yüzden bu benim için çok faydalı. –
- 1. Döküm arayüzü somut uygulama nesnesine mi yoksa tersine mi?
- 2. MySQL için Haversine formülü tersine mi?
- 3. Listeyi numpy dizisine dönüştürmek mi?
- 4. NSArray endişesini tersine çevirmek mi istiyorsunuz?
- 5. Jquery .hasClass() öğesinin tersi mi?
- 6. div işlevine sahip div öğesinin Nokogiri
- 7. Numpy
- 8. WPF Animasyon tersine açık bir şekilde çağrılabilir mi?
- 9. NumPy
- 10. NumPy
- 11. Numpy
- 12. DS.FixtureAdapter, sideload desteğine sahip mi?
- 13. Android, NumericUpDown Düğmesine sahip mi?
- 14. LinearLayout maksimum yüksekliğe sahip mi?
- 15. numpy: (n, 1) dizisine cast (n,) dizisine sözdizimi/deyim mi?
- 16. Değişken satır boyutuna sahip çok boyutlu numpy dizi nasıl oluşturulur?
- 17. NumPy dizisi dilimi, Hiçbiri
- 18. numpy analogu?
- 19. Sorguyu tersine çevirme
- 20. Haskell tersine çevirme işlevi
- 21. Tersine çevir ve dize
- 22. JQuery Animasyonunu Tersine Çevirme
- 23. Tersine diziyi kopyalayın
- 24. videoyu tersine kodlamak?
- 25. tersine git getirme
- 26. "H: H" öğesinin pozitif değerlere sahip olduğu satırları sil
- 27. static_assert ve std :: is_invocable öğesinin en iyisine sahip olmak
- 28. jQuery öğesinin,
- 29. Numpy/Pandas Serisi operatörle mi başlar? Var mı?
- 30. HTML5 aralık girişindeki yön nasıl tersine çevrilir?
; Çoğu kişi şu an "NumPy 1.6" veya daha yeni kullanacak. – gerrit