Python for AI/NumPy/Lesson 34
Arrays তৈরি
zeros, ones, full, arange, linspace, eye দিয়ে array বানানো; shape, ndim, dtype বোঝা; reshape আর astype — আর কেন একটা ছবি আসলে (height, width, 3) shape-এর array।
- সময়
- 22 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
List থেকে array বানানো ছাড়াও NumPy-তে array তৈরির অনেক function আছে। আর প্রতিটা array-এর একটা shape — কোন দিকে কতগুলো item।
v: shape (3,) 1D — একটা সারি
[1 2 3]
m: shape (2, 3) 2D — 2 row, 3 column
[[1 2 3]
[4 5 6]]
কেন দরকার?
ML-এ data-র shape সবকিছু। সবচেয়ে common error-গুলোর একটা: "shape mismatch"।
| Data | Shape | মানে |
|---|---|---|
| একটা feature vector | (5,) | ৫টা feature |
| Dataset (table) | (1000, 5) | ১০০০ sample, ৫টা feature |
| একটা সাদা-কালো ছবি | (28, 28) | 28×28 pixel |
| একটা রঙিন ছবি | (224, 224, 3) | height × width × RGB |
| ছবির batch | (32, 224, 224, 3) | ৩২টা ছবি একসাথে |
PyTorch বা TensorFlow-এর error-এর অর্ধেক হলো "আশা করেছিলাম এই shape, পেয়েছি ওই shape"। Shape-এ দক্ষ হলে debugging অনেক সহজ।
তৈরির function
| Function | কী দেয় | কখন |
|---|---|---|
np.zeros(shape) | সব 0 | ফলাফল জমানোর জায়গা, initialize |
np.ones(shape) | সব 1 | |
np.full(shape, v) | সব v | নির্দিষ্ট মান দিয়ে ভরা |
np.eye(n) | identity matrix | linear algebra |
np.arange(start, stop, step) | range-এর মতো | integer sequence |
np.linspace(a, b, n) | a থেকে b, n টা সমান ভাগ | graph-এর x-axis |
Shape সবসময় tuple:
np.zeros((2, 3))— দুই bracket!np.zeros(2, 3)লিখলে error বা ভুল ফলাফল।
Attribute: shape, ndim, size, dtype
reshape: আকার বদলানো
একই data, ভিন্ন আকারে সাজানো — মোট item সংখ্যা একই থাকতে হবে:
-1 মানে "বাকিটা তুমি হিসাব করো" — 12টা item, 4 row, তাই column = 3। খুব কাজের।
ঠিক এভাবেই একটা 28×28 ছবিকে 784টা সংখ্যার vector বানিয়ে সাধারণ neural network-এ দেওয়া হয়।
dtype আর astype
| dtype | রাখে | কোথায় |
|---|---|---|
int64 | পূর্ণসংখ্যা | label, count |
float64 | দশমিক (default) | সাধারণ হিসাব |
float32 | দশমিক, অর্ধেক memory | Deep learning (GPU) |
uint8 | 0–255 | ছবির pixel |
bool | True/False | mask |
astype(int) দশমিক কেটে ফেলে, round করে না (72.6 → 72)।
Exercise
Exercise
Array বানাও
NumPy function দিয়ে (হাতে সংখ্যা না লিখে) তিনটা array বানাও:
grid— 1 থেকে 12 পর্যন্ত সংখ্যা, 3 row × 4 column আকারেidentity— 3×3 identity matrix (কর্ণে 1, বাকি 0)steps— 0 থেকে 1 পর্যন্ত (দুই প্রান্ত সহ) সমান দূরত্বে 5টা সংখ্যা
Quiz
Challenge
Challenge
একটা ছবি বানাও
Computer-এর কাছে একটা রঙিন ছবি হলো (height, width, 3) shape-এর array — প্রতিটা pixel-এ লাল, সবুজ, নীল (RGB) তিনটা মান, প্রতিটা 0 থেকে 255।
make_image(height, width, color) function লেখো যেটা এমন একটা array return করে যার প্রতিটা pixel color (একটা (r, g, b) tuple)। dtype হবে uint8 (ছবির standard)।
বাস্তবে কোথায় ব্যবহার হয়?
একটা ছবি নিয়ে model-এ দেওয়ার আগের preprocessing — একদম real pipeline-এর মতো:
uint8 → float32, 0–255 → 0–1, (H, W, C) → (C, H, W), তারপর batch dimension যোগ — PyTorch-এ image model-এ দেওয়ার আগে এই কাজগুলোই হয়।
Interview প্রশ্ন
- Beginner: Array-এর shape আর ndim কী?
- Intermediate:
reshape(-1)কী করে?flatten()আরravel()-এর পার্থক্য কী? (flatten সবসময় copy, ravel সম্ভব হলে view।) - Advanced: Deep learning-এ
float64-এর বদলেfloat32(বাfloat16) কেন ব্যবহার করা হয়?
এরপর কী?
Array বানাতে পারি। এখন ভেতর থেকে নির্দিষ্ট অংশ বের করতে হবে — একটা row, একটা column, শর্ত মানা মানগুলো। পরের lesson: Indexing ও Slicing।