2012-12-05 13 views
9

मान लीजिए हम निम्नलिखित सरणी है:सूचकांक से सरणी तत्वों को समाप्त करने जाओ

import numpy as np 
a = np.arange(1, 10) 
a = a.reshape(len(a), 1) 
array([[1], 
     [2], 
     [3], 
     [4], 
     [5], 
     [6], 
     [7], 
     [8], 
     [9]]) 

अब, मैं अंत करने के लिए सूचकांक 4 से तत्वों तक पहुंचते हैं:

a[3:-1] 
array([[4], 
     [5], 
     [6], 
     [7], 
     [8]]) 

जब मैं यह कर , परिणामी वेक्टर अंतिम तत्व गायब है, अब छः के बजाय पांच तत्व हैं, ऐसा क्यों होता है, और मैं इसे जोड़ने के बिना अंतिम तत्व कैसे प्राप्त कर सकता हूं?

अपेक्षित उत्पादन:

array([[4], 
     [5], 
     [6], 
     [7], 
     [8], 
     [9]]) 

अग्रिम

उत्तर

21

[:-1] धन्यवाद पिछले तत्व निकाल देता है।

a[3:-1] 

लिखने

a[3:] 

के बजाय आप अजगर टुकड़ा करने की क्रिया अंकन यहाँ पर पढ़ सकते हैं: Explain Python's slice notation

NumPy टुकड़ा करने की क्रिया है कि का एक विस्तार है। NumPy ट्यूटोरियल में कुछ कवरेज है: Indexing, Slicing and Iterating

+0

वास्तव में यह काम करता है, धन्यवाद, मैं कुछ मैटलैब कोड को पायथन/numpy में बदलने की कोशिश कर रहा हूं, और उस संदर्भ मार्गदर्शिका [NumPy fot Matlab उपयोगकर्ता] (http://www.scipy.org/NumPy_for_Matlab_Users) कुछ महत्वपूर्ण मुद्दों को याद करती है अनुक्रमण और टुकड़ा के रूप में। –

+0

@Andfoy: मैं जुड़ा हुआ NumPy ट्यूटोरियल पढ़ने की सिफारिश करता हूं। यह सही नहीं है, लेकिन एक अच्छी शुरुआत होनी चाहिए। – NPE

+1

क्या कोई ऑब्जेक्ट या अन्य "इंडेक्स" है जो जा सकता है जहां -1 इसे '[3:] 'जैसा व्यवहार करना है? मुझे अक्सर लगता है कि यह मेरे द्वारा लिखे गए कोड को सरल बना देगा .. – Brian

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