2015-10-13 9 views
6

मुझे समझ में कठिनाई है कि कैसे numpy.transpose वास्तव में काम करता है। उदाहरणइस उदाहरण के लिए numpy.transpose कैसे काम करता है?

a_value = array([[[0, 1], 
        [2, 3]], 

       [[4, 5], 
        [6, 7]]]) 

के लिए और जब मैं

np.transpose(a_value, (2, 1, 0)) 

कर रहा

array([[[0, 4], 
     [2, 6]], 

     [[1, 5], 
     [3, 7]]]) 

मैं इस पक्षांतरित मैन्युअल प्राप्त कर सकते हैं? मुझे उपरोक्त मामले में फॉर्मूला या कदमों को सहजता से समझने की आवश्यकता है, इसलिए मैं इसे उच्च आयामों के लिए सामान्यीकृत कर सकता हूं।

+3

क्या आपने प्रलेखन पढ़ा था, यानी 'मदद (numpy.transpose) '? आप केवल आयामों को "अनुमति दें"। यदि आप क्रमपरिवर्तन '(2, 1, 0)' पास करते हैं, तो तत्व [x, y, z] 'स्थिति पर था, अब स्थिति' [z, y, x] ', या स्थिति में' [z, x, y] 'क्रमपरिवर्तन के लिए' (3, 0, 1) ' –

+0

धन्यवाद @tobias_k –

उत्तर

12

documentation -

numpy.transpose(a, axes=None)

कुल्हाड़ियों में दिए गए के रूप में: ints की सूची, वैकल्पिक डिफ़ॉल्ट रूप से, आयाम रिवर्स, अन्यथा दिए गए मान के अनुसार कुल्हाड़ियों दूसरे स्थान पर रखना।

दूसरा तर्क अक्ष है जिसका उपयोग मूल्यों की अनुमति है। उदाहरण के लिए यदि प्रारंभिक तत्व की अनुक्रमणिका (x,y,z) है (जहां x 0 थी अक्ष, y 1 अक्ष है, और z द्वितीय अक्ष है), परिणामी सरणी में उस तत्व की स्थिति (z, y, x) (वह है) axes के लिए प्रदान किए गए तर्क के आधार पर, दूसरी अक्ष है, फिर पहली अक्ष, और अंतिम 0 वीं अक्ष)।

जब से तुम आकार (2,2,2) की एक सरणी transposing कर रहे हैं, स्थानांतरित आकार भी (2,2,2) है, और पदों के रूप में बदल जाएगा -

(0,0,0) -> (0,0,0) 
(1,0,0) -> (0,0,1) 
(0,1,0) -> (0,1,0) 
(1,1,0) -> (0,1,1) 
... 

कुल्हाड़ियों आप चुनते तुच्छ हैं के बाद से, की सुविधा देता है के लिए यह समझाने एक और अक्ष उदाहरण -

In [54]: A = np.arange(30).reshape((2, 3, 5)) 
In [55]: A 
Out[55]: 
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, 24], 
     [25, 26, 27, 28, 29]]]) 

In [56]: np.transpose(A,(1,2,0)) 
Out[56]: 
array([[[ 0, 15], 
     [ 1, 16], 
     [ 2, 17], 
     [ 3, 18], 
     [ 4, 19]], 

     [[ 5, 20], 
     [ 6, 21], 
     [ 7, 22], 
     [ 8, 23], 
     [ 9, 24]], 

     [[10, 25], 
     [11, 26], 
     [12, 27], 
     [13, 28], 
     [14, 29]]]) 

यहाँ, पहला तत्व (0,0,0) परिणाम में (0,0,0) तत्व बन जाता है।

दूसरा तत्व (0,0,1) परिणाम में (0,1,0) तत्व बन जाता है। और इसी तरह -

(0,0,0) -> (0,0,0) 
(0,0,1) -> (0,1,0) 
(0,0,2) -> (0,2,0) 
... 
(2,3,4) -> (3,4,2) 
... 
+0

सरल स्पष्टीकरण के लिए धन्यवाद। –

संबंधित मुद्दे