মূল content-এ যাও

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।

main.py
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"।

DataShapeমানে
একটা 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

main.py
Functionকী দেয়কখন
np.zeros(shape)সব 0ফলাফল জমানোর জায়গা, initialize
np.ones(shape)সব 1
np.full(shape, v)সব vনির্দিষ্ট মান দিয়ে ভরা
np.eye(n)identity matrixlinear 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

main.py

reshape: আকার বদলানো

একই data, ভিন্ন আকারে সাজানো — মোট item সংখ্যা একই থাকতে হবে:

main.py

-1 মানে "বাকিটা তুমি হিসাব করো" — 12টা item, 4 row, তাই column = 3। খুব কাজের।

main.py

ঠিক এভাবেই একটা 28×28 ছবিকে 784টা সংখ্যার vector বানিয়ে সাধারণ neural network-এ দেওয়া হয়।

dtype আর astype

main.py
dtypeরাখেকোথায়
int64পূর্ণসংখ্যাlabel, count
float64দশমিক (default)সাধারণ হিসাব
float32দশমিক, অর্ধেক memoryDeep learning (GPU)
uint80–255ছবির pixel
boolTrue/Falsemask

astype(int) দশমিক কেটে ফেলে, round করে না (72.6 → 72)।

Exercise

Exercise

Array বানাও

+20 XP

NumPy function দিয়ে (হাতে সংখ্যা না লিখে) তিনটা array বানাও:

  • grid — 1 থেকে 12 পর্যন্ত সংখ্যা, 3 row × 4 column আকারে
  • identity — 3×3 identity matrix (কর্ণে 1, বাকি 0)
  • steps — 0 থেকে 1 পর্যন্ত (দুই প্রান্ত সহ) সমান দূরত্বে 5টা সংখ্যা
solution.py

Quiz

  1. Q1np.zeros((2, 3))-এর shape আর ndim কী?
  2. Q2np.arange(10).reshape(3, 4) চালালে কী হবে?
  3. Q3np.arange(0, 1, 0.25) আর np.linspace(0, 1, 5)-এর পার্থক্য কী?
0/3 answered

Challenge

Challenge

একটা ছবি বানাও

+50 XP

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)।

solution.py

বাস্তবে কোথায় ব্যবহার হয়?

একটা ছবি নিয়ে model-এ দেওয়ার আগের preprocessing — একদম real pipeline-এর মতো:

main.py

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।