ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
ဒီ 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 နမူနာ
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)
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 လွဲသွားနိုင်ပါတယ်။