Thuta Learning
ရှာဖွေရန်
ExercisesData & Databasesintermediate

Practice: Arrays & Indexing

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Practice: Arrays & Indexing ကို ကိုယ်တိုင် လေ့ကျင့်ကြည့်မယ်
  • သင်ခဲ့ပြီးသား skill တွေကို practice လုပ်ပြီး ခိုင်မာအောင်လုပ်မယ်
  • အမှားရှာ၊ ပြင်တတ်၊ ကိုယ်တိုင် check လုပ်တတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

ဒီ lesson က tutorial ရဲ့ Basic chapter မှာ သင်ခဲ့တဲ့ array creation, attributes, indexing, slicing, basic operations တွေကို teaching အသစ်မထည့်ဘဲ practice task ငယ် 4 ခုနဲ့ ပြန်လှန် ကျင့်သုံးကြည့်ဖို့ ရည်ရွယ်ထားပါတယ်။ Task တစ်ခုချင်းစီကို ကိုယ်တိုင် code ရေးကြည့်ပြီး output ကို predict လုပ်ကြည့်ပါ၊ ပြီးမှ run လုပ်ပြီး စစ်ဆေးပါ။ ဒီအခြေခံ skill တွေက Part 2 ရဲ့ ခက်ခဲတဲ့ broadcasting, aggregation task တွေအတွက် base ဖြစ်ပါတယ်။

လေ့ကျင့်ခန်းများ

Task 1: သင်အကြိုက်ဆုံးနံပါတ် 5 ခုနဲ့ 1D array တစ်ခုဖန်တီးပြီး dtype, shape ကို print ထုတ်ပါ။ Task 2: np.arange(12) ကို reshape(3, 4) လုပ်ပြီး 2D array ဖန်တီးကာ middle 2x2 block (row 1-2, column 1-2) ကို slicing နဲ့ ထုတ်ပါ။ Task 3: 0 ကနေ 20 ထိ even number array တစ်ခုဖန်တီးပြီး slicing (step -1) နဲ့ reverse order ဖြစ်အောင် ပြန်ထုတ်ပါ။ Task 4: array တစ်ခုပေါ်မှာ element-wise ဖြင့် 5 ပေါင်း, 2 မြှောက် လုပ်ပြီး result ကို original array နဲ့ side-by-side print ထုတ်ပြီး ကွာခြားချက်ကို ကြည့်ပါ။

Code နမူနာ

python
import numpy as np

# Task 1: 1D array + attributes
favorites = np.array([7, 14, 21, 42, 100])
print("dtype:", favorites.dtype, "shape:", favorites.shape)

# Task 2: reshape + middle block slicing
grid = np.arange(12).reshape(3, 4)
print("grid:\n", grid)
middle_block = grid[0:2, 1:3]  # TODO: adjust to get the correct middle block
print("middle block:\n", middle_block)

# Task 3: even numbers, reversed with slicing
evens = np.arange(0, 21, 2)
reversed_evens = evens[::-1]
print("evens:", evens)
print("reversed:", reversed_evens)

# Task 4: element-wise operations
original = np.array([1, 2, 3, 4, 5])
transformed = (original + 5) * 2
print("original:", original)
print("transformed:", transformed)
You should see
Task 4 ခုစလုံးအတွက် print statement တွေက dtype/shape, sliced 2x2 block, reversed even array, နဲ့ transform လုပ်ထားတဲ့ array ကို correct ဖြစ်အောင် ပြပါလိမ့်မယ်။

၅ မိနစ် စမ်းကြည့်

Task 2 ရဲ့ grid ကို (4, 3) reshape အသစ်နဲ့ ပြောင်းကြည့်ပြီး middle block slicing index တွေကို ပြန်ချိန်ညှိရမလား စဉ်းစားကြည့်ပါ (5 minutes)။

သတိလေးတစ်ချက်

grid[0:2, 1:3] လို 2D slicing မှာ row range, column range ကို comma ခွဲပြီးရေးရပါတယ် - grid[0:2][1:3] လို double bracket နဲ့ ရေးရင် logic လွဲသွားနိုင်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • reshape() လုပ်တဲ့အခါ total element count (rows x columns) ကို original array size နဲ့ မညီအောင် ကြိုးစားပြီး ValueError တက်တာ
  • slicing [start:stop] မှာ stop index ကို inclusive ဟု ထင်ပြီး element တစ်ခု လွတ်သွားတာ (stop index က exclusive ဖြစ်တာ)

အခု ကိုယ်တိုင် စမ်းကြည့်

Task 2 ရဲ့ grid ကို (4, 3) reshape အသစ်နဲ့ ပြောင်းကြည့်ပြီး middle block slicing index တွေကို ပြန်ချိန်ညှိရမလား စဉ်းစားကြည့်ပါ (5 minutes)။

You'll know it worked when: Task 4 ခုစလုံးအတွက် print statement တွေက dtype/shape, sliced 2x2 block, reversed even array, နဲ့ transform လုပ်ထားတဲ့ array ကို correct ဖြစ်အောင် ပြပါလိမ့်မယ်။

Practice: Arrays & Indexing | Thuta Learning