5.4.3 · HinglishScientific Computing (Python)

Indexing and slicing — basic, boolean masking, fancy indexing

1,489 words7 min readRead in English

5.4.3 · Coding › Scientific Computing (Python)


1. Basic slicing — start:stop:step

YEH kya return karta hai: ek view — ek naya array object jo same data buffer share karta hai. Slice ko mutate karna original ko mutate karta hai.

KYUN view (HOW yeh kaam karta hai): Ek slice sirf recipe ke offset aur strides change karta hai; koi data copy nahi hoti. Isliye yeh huge arrays ke liye bhi instant hai.


2. Boolean masking — condition se select karo

KYUN copy: select kiye gaye elements memory mein irregularly scattered hote hain; unhe single stride se describe nahi kar sakte, isliye NumPy unhe fresh contiguous memory mein gather karta hai.


3. Fancy (integer-array) indexing — position list se select karo

Figure — Indexing and slicing — basic, boolean masking, fancy indexing


Recall Feynman: ek 12-saal ke bacche ko samjhao

Socho ek lambi row hai numbered lockers ki jo toys se bhari hain.

  • Slicing = "lockers 2 se 8 tak kholo, har doosre ko skip karte hue." Fast hai, aur tum asli lockers dekh rahe ho — koi toy hatao toh woh sach mein hata hai.
  • Boolean masking = tumhare paas ek checklist hai: jin lockers mein laal toy hai unhe tick karo, phir sirf woh toys ek basket mein copy karo.
  • Fancy indexing = tum list do "lockers 5, 1, 1, 3 please" aur woh toys usi order mein lo, repeats bhi. Masking aur list ek basket (copy) banate hain; range sirf asli lockers mein peeks karti hai (view).

Flashcards

NumPy array ko index karne ke teen tarike kaunse hain?
Basic slicing (start:stop:step), boolean masking, fancy (integer-array) indexing.
Kya basic slicing view return karta hai ya copy?
Ek view — yeh original data buffer share karta hai (sirf offset/strides change hote hain).
Kya boolean masking aur fancy indexing view return karte hain ya copy?
Ek copy (fresh memory mein gather kiya jaata hai).
Mask mein and, or, not ki jagah &, |, ~ KYUN use karna padta hai?
Yeh array ke upar elementwise operate karte hain; and/or ko single boolean chahiye aur woh ambiguity error raise karte hain.
a[start:stop:step] (step>0) ki length ka formula?
, clamped to ≥0.
2-D A ke liye A[[0,2],[1,3]] kya return karta hai?
Pointwise pairs A[0,1] aur A[2,3] — 2×2 block NAHI.
Rows {0,2} × cols {1,3} ka actual block kaise select karein?
A[np.ix_([0,2],[1,3])].
Jab idx ek 2×2 integer array ho toh a[idx] ki shape kya hogi?
idx ki shape ke jaisi (2×2); fancy indexing index array ki shape follow karta hai.
Boolean mask ek 2-D array ki dimensionality ka kya karta hai?
Selection ko 1-D mein flatten karta hai.
A ko change kiye bina uski pehli row safely edit kaise karein?
b = A[0].copy().

Connections

  • NumPy arrays — shape, strides, dtype (KYUN views saste hain)
  • Broadcasting (masks/index arrays array shape ke saath broadcast karte hain)
  • Views vs Copies — memory model
  • np.where and conditional selection
  • Vectorization — replacing Python loops
  • Pandas .loc / .iloc indexing (same ideas DataFrame level pe)

Concept Map

recipe se describe hota hai

tarika 1

tarika 2

tarika 3

return karta hai

return karta hai

return karta hai

sirf offset/strides change karta hai

scattered elements gather karta hai

se banta hai

element count

replace karta hai

Array = data + shape/strides

Indexing: positions pick karo

Basic slicing start:stop:step

Boolean masking

Fancy indexing

View: memory share karta hai

Copy: fresh memory

Condition with & | ~

n = ceil((stop-start)/step)

Vectorized selection