Indexing & Slicing in NumPy in hindi
Indexing & Slicing in NumPy in Hindi | NumPy Indexing and Slicing Explained
Table of Contents
Indexing & Slicing in NumPy in Hindi
NumPy Python की सबसे important library मानी जाती है, खासकर engineering, data science और college level programming exams के लिए। जब भी arrays पर काम करने की बात आती है, तो Indexing और Slicing सबसे basic और सबसे ज्यादा पूछे जाने वाले concepts होते हैं। इस article में हम इन्हें बिल्कुल classroom style में, आसान हिंदी में step-by-step समझेंगे।
Exam point of view से देखा जाए तो NumPy Indexing & Slicing से direct questions आते हैं, जैसे array से value निकालना, sub-array बनाना, या specific data access करना। इसलिए इन topics को clear तरीके से समझना बहुत जरूरी है।
Indexing in NumPy
NumPy में Indexing का मतलब होता है array के अंदर मौजूद किसी specific element को access करना। जैसे हम real life में cupboard के किसी particular खाने को खोलते हैं, वैसे ही array के अंदर position के basis पर data निकाला जाता है।
NumPy array में indexing हमेशा 0 से start होती है। यानी पहला element index 0 पर होता है, दूसरा index 1 पर और इसी तरह आगे बढ़ता है। यह concept Python lists जैसा ही होता है।
1D Array Indexing
जब हमारे पास सिर्फ एक row वाला array होता है, तो उसे 1D array कहते हैं। ऐसे array में indexing सबसे simple होती है और exam में यही सबसे पहले पूछा जाता है।
मान लो हमारे पास एक NumPy array है जिसमें कुछ numbers store हैं। अगर हमें किसी particular position का value चाहिए, तो हम index number का use करते हैं।
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
print(arr[2])
ऊपर दिए गए code में arr[2] लिखा है। क्योंकि indexing 0 से शुरू होती है, इसलिए index 2 पर value 30 होगी। Exam में ऐसे output based questions बहुत common हैं।
Negative Indexing
NumPy में indexing सिर्फ positive numbers तक limited नहीं होती। यहाँ Negative Indexing भी possible है। Negative index array के end से value निकालने के लिए use किया जाता है।
-1 का मतलब last element, -2 का मतलब second last element और इसी तरह आगे बढ़ता है। यह feature NumPy को और powerful बनाता है।
print(arr[-1])
print(arr[-3])
ऊपर के example में arr[-1] last value यानी 50 देगा, और arr[-3] end से तीसरी value यानी 30 return करेगा।
2D Array Indexing
जब array rows और columns में होता है, तो उसे 2D array कहा जाता है। College exams में matrix based questions अक्सर 2D NumPy arrays पर ही होते हैं।
2D array में indexing के लिए row index और column index दोनों देने पड़ते हैं। Syntax होता है: array[row_index, column_index]
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2[1, 2])
यहाँ arr2[1,2] का मतलब है दूसरी row और तीसरा column। Output होगा 6। Exam में indexing order गलत करने से marks कट जाते हैं, इसलिए इसे ध्यान से समझना जरूरी है।
Row and Column Access
कई बार हमें पूरा row या पूरा column access करना होता है। NumPy indexing यह काम भी बहुत आसानी से कर देती है।
अगर हमें पूरी row चाहिए, तो column की जगह : symbol का use करते हैं। यही concept आगे slicing में और clear होगा।
print(arr2[0, :])
print(arr2[:, 1])
पहले statement में पहली row के सारे elements मिलेंगे। दूसरे statement में सभी rows का दूसरा column मिलेगा। Data analysis में यह technique बहुत ज्यादा use होती है।
Indexing vs Python List
Exam में कई बार पूछा जाता है कि NumPy indexing और Python list indexing में क्या difference है। Basic level पर दोनों similar लगते हैं, लेकिन NumPy indexing ज्यादा powerful होती है।
| Point | Python List | NumPy Array |
|---|---|---|
| Speed | Slow | Fast |
| Multi-Dimension | Complex | Easy |
| Indexing Power | Limited | Advanced |
यही reason है कि scientific computing और machine learning में Python list के बजाय NumPy arrays prefer किए जाते हैं। Indexing concept clear होगा तो आगे slicing और advanced operations समझना आसान हो जाएगा।
Slicing in NumPy
NumPy में Slicing का मतलब होता है array के किसी selected हिस्से को निकालना। जहाँ indexing से हम सिर्फ एक single value access करते हैं, वहीं slicing से हम multiple values या sub-array बना सकते हैं। Exam और practical दोनों point of view से यह concept बहुत important है।
Simple शब्दों में कहें तो slicing array को छोटे-छोटे meaningful parts में divide करने का तरीका है। Data analysis, machine learning और scientific calculation में slicing का use almost हर जगह होता है।
Slicing Syntax
NumPy slicing का basic syntax Python list slicing जैसा ही होता है: array[start : stop : step]
- start – जहाँ से slicing शुरू होगी
- stop – जहाँ तक slicing होगी (यह index include नहीं होता)
- step – कितने gap से elements लेने हैं
अगर start नहीं देते तो slicing 0 से शुरू होती है। अगर stop नहीं देते तो slicing array के end तक जाती है। और step नहीं देने पर default value 1 होती है।
1D Array Slicing
1D array slicing सबसे आसान होती है और exams में direct questions यहीं से आते हैं। इसमें हम array के continuous elements को select करते हैं।
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60])
print(arr[1:4])
ऊपर दिए गए example में slicing index 1 से start होकर index 4 से पहले तक जाएगी। Output होगा: 20, 30, 40। ध्यान रखो, stop index हमेशा exclude होता है।
Slicing with Step
Step parameter slicing को और powerful बना देता है। इसकी help से हम हर element नहीं बल्कि fixed gap से elements ले सकते हैं।
print(arr[0:6:2])
यहाँ step = 2 है, इसलिए हर दूसरे element को लिया जाएगा। Output होगा: 10, 30, 50। ऐसे questions logical thinking check करने के लिए पूछे जाते हैं।
Negative Slicing
जैसे indexing में negative values होती हैं, वैसे ही slicing में भी negative start और stop use किए जा सकते हैं। Negative slicing array के end से count करती है।
print(arr[-5:-1])
इस example में slicing end से पाँचवें element से start होकर last element से पहले तक जाएगी। Output होगा: 20, 30, 40, 50। Exam में negative slicing से confusion होता है, इसलिए practice जरूरी है।
2D Array Slicing
2D array slicing थोड़ा advanced होती है, लेकिन college level exams में matrix related questions में यह जरूर पूछी जाती है। इसमें rows और columns दोनों को slice किया जा सकता है।
arr2 = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
अब मान लो हमें सिर्फ first दो rows और last दो columns चाहिए। यह काम slicing से बहुत easily हो जाता है।
print(arr2[0:2, 2:4])
यहाँ पहले part में rows slice हो रही हैं और दूसरे part में columns।
Output होगा:
3 4
7 8
Row-wise and Column-wise Slicing
कई practical situations में हमें पूरी row या पूरी column का data चाहिए। NumPy slicing इसे बहुत simple बना देती है।
print(arr2[1, :])
print(arr2[:, 0])
पहले statement में दूसरी row के सारे elements मिलेंगे। दूसरे statement में सभी rows का पहला column मिलेगा। यही concept आगे data analysis में बहुत काम आता है।
Slicing Creates View, Not Copy
NumPy slicing का एक बहुत important point यह है कि slicing से जो sub-array बनता है, वह original array का view होता है, copy नहीं।
इसका मतलब है कि अगर sliced array में change करेंगे, तो original array में भी change दिखेगा। Exam में यह concept theoretical question में पूछा जाता है।
sub = arr[1:4]
sub[0] = 999
print(arr)
यहाँ sub array में change करने पर original arr भी modify हो जाएगा। यह behaviour Python list से अलग होता है।
Copy vs Slice Difference
अगर आपको original array को safe रखना है, तो slicing के साथ copy() method use करनी चाहिए।
sub_copy = arr[1:4].copy()
अब sub_copy में changes करने से original array पर कोई effect नहीं पड़ेगा। यह concept interview और advanced exam questions में काम आता है।
Indexing vs Slicing (Quick Comparison)
| Point | Indexing | Slicing |
|---|---|---|
| Access Type | Single Element | Multiple Elements |
| Output | Scalar Value | Array / Sub-array |
| Usage | Specific Value | Data Selection |
अगर Indexing और Slicing दोनों concepts clear हैं, तो NumPy के advanced topics जैसे Boolean Indexing, Fancy Indexing और Data Filtering समझना बहुत आसान हो जाता है। यही reason है कि exams में इस topic को strong माना जाता है।