মূল content-এ যাও

Python for AI/Functions, Modules ও Packages/Lesson 19

Modules ও import

অন্যের লেখা code ব্যবহার করা — import-এর তিন রূপ, standard library-র দরকারি module (math, random, statistics, collections, datetime), আর __name__ == "__main__"।

সময়
22 মিনিট
Exercise
1
Challenge
1
Quiz
3 প্রশ্ন

সহজ ভাষায়

Module হলো Python code-এর একটা file — যেটার ভেতরের function, variable অন্য জায়গা থেকে import করে ব্যবহার করা যায়।

Python-এর সাথে বিনামূল্যে আসে শত শত module — একে বলে standard library। "Batteries included" — Python-এর বিখ্যাত slogan।

main.py

কেন দরকার?

প্রতিটা জিনিস নিজে লিখতে হলে কখনো ML পর্যন্ত পৌঁছানো যেত না। Standard deviation, random number, তারিখের হিসাব — এগুলো বহু বছর ধরে test করা code হিসেবে তৈরি আছে।

আর ML-এর পুরো দুনিয়াটাই import দিয়ে শুরু হয়:

import numpy as np
import pandas as pd
import torch
from sklearn.linear_model import LinearRegression

আজ import কীভাবে কাজ করে সেটা ভালো করে বুঝবো।

import-এর তিন রূপ

main.py
লেখাব্যবহারকখন
import mathmath.sqrt()Default — কোথা থেকে এল স্পষ্ট বোঝা যায়
from math import sqrtsqrt()বারবার একটা-দুটো জিনিস লাগলে
import numpy as npnp.array()লম্বা নাম, বা convention থাকলে

from math import * (সব import) এড়িয়ে চলো — কোন নাম কোথা থেকে এল বোঝা যায় না, আর তোমার নিজের variable-এর নাম চুপচাপ ঢাকা পড়তে পারে।

Standard library-র দরকারি module

random

main.py

random.seed(42) দিলে প্রতিবার একই "random" ফলাফল আসে — ML experiment reproducible রাখতে এটা অপরিহার্য। অনেক ML paper-এর code-এ দেখবে seed = 42।

statistics

main.py

collections

main.py

defaultdict(list) — না থাকা key চাইলে নিজে থেকেই খালি list বানিয়ে দেয়। if key not in d: d[key] = [] লেখার ঝামেলা নেই।

datetime

main.py

নিজের module আর __name__

তোমার প্রতিটা .py file নিজেই একটা module। ধরো utils.py:

# utils.py
def clean(text):
    return text.strip().lower()

if __name__ == "__main__":
    print(clean("  TEST  "))

অন্য file থেকে:

# main.py
from utils import clean
print(clean("  Hello  "))

if __name__ == "__main__": block শুধু তখন চলে যখন utils.py সরাসরি চালানো হয় (python utils.py)। main.py থেকে import করলে চলে না। তাই test বা demo code এখানে রাখা হয়।

main.py

এখানে সরাসরি চালাচ্ছো, তাই __main__ দেখাচ্ছে।

Exercise

Exercise

Dataset-এর পরিসংখ্যান

+20 XP

statistics module ব্যবহার করে ages থেকে বের করো:

  • mean_age — গড়
  • median_age — মধ্যমা
  • std_age — standard deviation (stdev), 2 ঘর দশমিকে round

নিজে হিসাব না করে module-এর function ব্যবহার করো।

solution.py

Quiz

  1. Q1from math import sqrt লেখার পর কোনটা কাজ করবে?
  2. Q2import numpy as np — এখানে as কী করে?
  3. Q3if __name__ == "__main__": block কখন চলে?
0/3 answered

Challenge

Challenge

সবচেয়ে বেশি আসা শব্দ

+50 XP

top_words(text, n) function লেখো যেটা text-এ সবচেয়ে বেশিবার আসা nটা শব্দ return করে — (শব্দ, সংখ্যা) tuple-এর list হিসেবে, বেশি থেকে কম।

  • শব্দ গোনার আগে সব ছোট হাতের অক্ষরে আনো
  • collections module-এর Counter ব্যবহার করো
solution.py

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

একটা ML project-এর শুরুতে প্রায় সবসময় এরকম কিছু থাকে — reproducibility-র জন্য seed ঠিক করা আর data shuffle করে ভাগ করা:

main.py

Counter দিয়ে দেখছি দুই ভাগে class-এর অনুপাত মোটামুটি সমান আছে কিনা — না থাকলে model-এর evaluation বিশ্বাসযোগ্য হবে না। (scikit-learn-এ এর জন্য stratify option আছে।)

Interview প্রশ্ন

  • Beginner: import x আর from x import y-এর পার্থক্য কী?
  • Intermediate: if __name__ == "__main__": কেন ব্যবহার করা হয়?
  • Advanced: Python একই module দুবার import করলে কি code দুবার চলে? (sys.modules cache)। Circular import কী আর কীভাবে এড়াবে?

এরপর কী?

Standard library শক্তিশালী, কিন্তু NumPy, Pandas, PyTorch Python-এর সাথে আসে না — এগুলো install করতে হয়। পরের lesson: Packages ও pip।