ऐसा लगता है कि प्रश्न और उदाहरण वेस मैककिनी द्वारा डेटा विश्लेषण के लिए पायथन पुस्तक से उत्पन्न हुआ है । अध्याय 4.1transpose
में इस विशेषता का उल्लेख है । ट्रांसपेरिंग एरेस और स्वैपिंग एक्सिस ।
उच्च आयामी सरणियों के लिए, transpose
कुल्हाड़ियों को अनुमति देने के लिए अक्षों की संख्या का एक tuple स्वीकार करेंगे (अतिरिक्त दिमाग झुकने के लिए)।
यहां "परमिट" का अर्थ "पुनर्व्यवस्थित करना" है, इसलिए कुल्हाड़ियों के क्रम को फिर से व्यवस्थित करना।
यह .transpose(1, 0, 2)
निर्धारित करता है कि मूल की तुलना में कुल्हाड़ियों के क्रम को कैसे बदला जाता है। उपयोग करने .transpose(1, 0, 2)
से हमारा मतलब है, "1 कुल्हाड़ी को 2 के साथ बदलें।" यदि हम उपयोग करते हैं .transpose(0, 1, 2)
, तो सरणी वही रहेगी क्योंकि बदलने के लिए कुछ भी नहीं है; यह डिफ़ॉल्ट क्रम है।
(2, 2, 4)
1 और 2 कुल्हाड़ियों के आकार समान होने से आकार सरणी के साथ पुस्तक में उदाहरण बहुत स्पष्ट नहीं है। तो अंत परिणाम पंक्तियों के पुन: क्रमांकन को छोड़कर नहीं लगता है arr[0, 1]
और arr[1, 0]
।
यदि हम 3 आयाम सरणी के साथ एक अलग उदाहरण की कोशिश करते हैं, जिसमें प्रत्येक आयाम का एक अलग आकार होता है, तो पुनर्व्यवस्था वाला भाग अधिक स्पष्ट हो जाता है।
In [2]: x = np.arange(24).reshape(2, 3, 4)
In [3]: x
Out[3]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
In [4]: x.transpose(1, 0, 2)
Out[4]:
array([[[ 0, 1, 2, 3],
[12, 13, 14, 15]],
[[ 4, 5, 6, 7],
[16, 17, 18, 19]],
[[ 8, 9, 10, 11],
[20, 21, 22, 23]]])
यहाँ, मूल सरणी आकार हैं (2, 3, 4)
। हमने 1 और 2 को बदल दिया है, इसलिए यह (3, 2, 4)
आकार में हो जाता है। यदि हम यह देखने के लिए करीब से देखें कि पुनर्व्यवस्था कैसे हुई; संख्याओं के सरणियों को एक विशेष पैटर्न में परिवर्तित किया गया लगता है। @ रॉबर्टबी के पेपर सादृश्य का उपयोग करते हुए , यदि हमें संख्याओं के 2 भाग लेने थे, और शीट पर प्रत्येक को लिखना था, तो सरणी के एक आयाम का निर्माण करने के लिए प्रत्येक शीट से एक पंक्ति लें, अब हमारे पास एक 3x2x4 आकार का सरणी होगा , सबसे बाहरी परत से सबसे ऊपर की गिनती।
[ 0, 1, 2, 3] \ [12, 13, 14, 15]
[ 4, 5, 6, 7] \ [16, 17, 18, 19]
[ 8, 9, 10, 11] \ [20, 21, 22, 23]
विभिन्न आकार के सरणियों के साथ खेलना और विभिन्न अक्षों को बदलना एक बेहतर विचार हो सकता है कि यह कैसे काम करता है का एक बेहतर अंतर्ज्ञान प्राप्त करने के लिए।