2013-05-09 6 views
22

numpy vstack और column_stack के बीच क्या अंतर है। प्रलेखन के माध्यम से पढ़ना, ऐसा लगता है कि column_stack 1 डी arrays के लिए vstack का कार्यान्वयन है। क्या यह एक अधिक कुशल कार्यान्वयन है? अन्यथा, मुझे vstack होने का कोई कारण नहीं मिल रहा है।numpy vstack बनाम column_stack

उत्तर

50

मैं निम्नलिखित कोड अच्छी तरह से अंतर को दिखाता है लगता है:

>>> np.vstack(([1,2,3],[4,5,6])) 
array([[1, 2, 3], 
     [4, 5, 6]]) 
>>> np.column_stack(([1,2,3],[4,5,6])) 
array([[1, 4], 
     [2, 5], 
     [3, 6]]) 
>>> np.hstack(([1,2,3],[4,5,6])) 
array([1, 2, 3, 4, 5, 6]) 

मैं तुलना के लिए hstack को शामिल किया है और साथ ही। ध्यान दें कि दूसरे आयाम के साथ column_stack ढेर जबकि पहले आयाम के साथ vstack ढेर।

>>> np.hstack(([[1],[2],[3]],[[4],[5],[6]])) 
array([[1, 4], 
     [2, 5], 
     [3, 6]]) 

मुझे आशा है कि हम इस बात से सहमत कर सकते हैं कि column_stack अधिक सुविधाजनक है: column_stack के बराबर निम्नलिखित hstack आदेश है।

6

column_stack के लिए नोट्स अनुभाग में, यह बताते हैं इस:

इस समारोह np.vstack(tup).T के बराबर है।

numpy में कई फ़ंक्शन हैं जो अन्य कार्यों के सुविधाजनक रैपर हैं। उदाहरण के लिए, vstack के नोट्स अनुभाग का कहना है: np.concatenate(tup, axis=0) को

समतुल्य अगर TUP सरणियों कि कम से कम 2-आयामी होते हैं।

ऐसा लगता है कि column_stackvstack के लिए एक सुविधाजनक कार्य है।

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