2009-09-10 18 views
21

का उपयोग करके NumPy सरणी टुकड़ा यह मुझे थोड़ी देर के लिए मेरे सिर खरोंच कर रहा था। मैं अनजाने में किसी के साथ एक सरणी slicing था और एक त्रुटि के अलावा कुछ और प्राप्त कर रहा था (मुझे एक त्रुटि की उम्मीद है)। इसके बजाय, यह एक अतिरिक्त आयाम के साथ एक सरणी देता है।कोई भी

>>> import numpy 
>>> a = numpy.arange(4).reshape(2,2) 
>>> a 
array([[0, 1], 
     [2, 3]]) 
>>> a[None] 
array([[[0, 1], 
     [2, 3]]]) 

क्या यह व्यवहार जानबूझकर या दुष्प्रभाव है? अगर जानबूझकर, क्या इसके लिए कुछ तर्क है?

उत्तर

28

कोई भी उपयोग नहीं numpy.newaxis का उपयोग करने के बराबर है, इसलिए हाँ, यह जानबूझकर है। वास्तव में, वे एक ही बात हैं, लेकिन, ज़ाहिर है, newaxis इसे बेहतर तरीके से मंत्रमुग्ध करता है।

The docs

A related SO question

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