numpy.unravel_index() एक सरणी में एक आकार और एक फ्लैट इंडेक्स लेता है, और उस ट्यूपल को देता है जो सरणी में उस अनुक्रमणिका का प्रतिनिधित्व करता है। क्या कोई उलटा है? मैं इसे हाथ से गणना कर सकता हूं, लेकिन ऐसा लगता है कि यह कहीं भी एक अंतर्निहित कार्य होना चाहिए ...क्या NumPy unravel_index() का उलटा है?
उत्तर
numpy 1.6.0
के बाद से (मई 2011) एक अंतर्निहित NumPy समारोह ravel_multi_index
फ्लैट सूचकांकों की एक सरणी में सूचकांक सरणियों के एक टपल में बदलता है, बहु सूचकांक करने के लिए सीमा मोड लागू करने के है।
(यह भी उपयोगकर्ता द्वि रीको द्वारा एक टिप्पणी में बताया गया है, लेकिन वास्तव में एक जवाब के रूप में प्रकट करना चाहिए)
उत्तर numpy.ndarray.strides में निहित है। http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.strides.html
भरोसेमंद नहीं। जब आप सरणी के स्लाइस लेते हैं, तो numpy अक्सर एक ही डेटा साझा करेगा और स्ट्रिंग चालें करेगा। Arange (15) .reshape ((3,5)) की तुलना करें। Strides (यह एक अच्छा, संगत सरणी होगी) और arange (35) .reshape ((7,5)) [1 :: 2,:]। । –
सच है, और उसमें गैर-दृश्यता वास्तविक दर्द हो सकती है। लेकिन अगर आप अपने आप को चाल चलने की योजना बना रहे हैं (जैसा कि मैं यहां था), उम्मीद है कि आप गारंटी दे सकते हैं कि सरणी संगत है। – D0SBoots
देखें यह काम करता है:
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
यह एक कमांड में बनाया नहीं है, लेकिन मैं हमेशा निम्नलिखित स्निपेट का उपयोग किया है, यह मानते हुए numpy के डिफ़ॉल्ट पंक्ति-प्रमुख अनुक्रमण किया जा रहा है:
np.sum(np.array(index_tuple[:-1])*np.array(a_matrix.shape[1:]))+np.array(index_tuple[-1])
Fortan की तरह (स्तंभ-प्रमुख) अनुक्रमण के लिए
, सूचकांक सिर्फ बदली करने की आवश्यकता:
np.sum(np.array(index_tuple[1:])*np.array(a_matrix.shape[:-1]))+np.array(index_tuple[0])
उपर्युक्त में, index_tuple और a_matrix एक ट्यूपल होते हैं जिसमें ब्याज के सूचकांक होते हैं और क्रमशः मैट्रिक्स अनुक्रमित होते हैं। जब स्लाइस लिया जाता है तो इसमें उपरोक्त समस्याएं होती हैं।
numpy 1.6 के रूप में यह कमांड 'numpy.ravel_multi_index', http://docs.scipy.org/doc/numpy/reference/generated/numpy.ravel_multi_index.html कमांड में बनाया गया है लेकिन यह प्रश्न बहुत पुराना है। –
धन्यवाद, मैंने नया आदेश नहीं देखा था, इसलिए यह मेरे लिए बहुत उपयोगी है। –
- 1. numpy या scipy में बाएं उलटा?
- 2. क्या numpy के साथ matrices की एक सरणी कुशलतापूर्वक उलटा करने का कोई तरीका है?
- 3. शंटिंग यार्ड एल्गोरिदम का उलटा क्या है?
- 4. क्या हैस्केल $ ऑपरेटर का एक उलटा है?
- 5. numpy मैट्रिक्स प्रवंचना - उलटा बार मैट्रिक की राशि
- 6. हो रही उलटा (1/एक्स) एक numpy सरणी के तत्वों
- 7. NumPy
- 8. उलटा()
- 9. क्या सिस्टम का एक उलटा है। डायग्नोस्टिक्स। कंडिशन एट्रिब्यूट?
- 10. NumPy arrays को प्रीलाकेट करने का पसंदीदा तरीका क्या है?
- 11. क्या ... numpy कोड में मतलब है?
- 12. उलटा रंग
- 13. numpy
- 14. NumPy
- 15. Numpy
- 16. numpy
- 17. numpy
- 18. numpy
- 19. numpy
- 20. उलटा हुआ और मैप के बीच क्या अंतर है?
- 21. PHP के लिए नियंत्रण कंटेनर का उलटा?
- 22. numpy
- 23. क्या सी # नामस्थान उपनाम को उलटा करना संभव है?
- 24. NumPy
- 25. numpy-wise स्ट्रिंग concatenation numpy
- 26. numpy
- 27. numpy
- 28. NumPy
- 29. NumPy
- 30. numpy
मुझे लगता है कि आप 'का उपयोग कर ravel_multi_index' एक के लिए स्वीकार किए जाते हैं जवाब अद्यतन करना चाहिए; ज्यादातर लोग अब तक 'न्यूपी 1.6' या नए का उपयोग करेंगे। – gerrit