5.4.3 · HinglishScientific Computing (Python)
Indexing and slicing — basic, boolean masking, fancy indexing
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

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)