Eldor’s AI Lab
رفتن به کانال در Telegram
🚀 Eldor’s AI Lab – Sun’iy intellektni chuqur va amaliy o‘rganish! 🔹 AI va ML nazariyasi 🔹 Kod va amaliy mashg‘ulotlar 🔹 Dasturlash bo‘yicha maslahatlar 🔹 Ilmiy maqolalar va eng so‘nggi yangiliklar 💡 AIni o‘rganishni istaysizmi? Let's go!
نمایش بیشترکشور مشخص نشده استدسته بندی مشخص نشده است
376
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-27 روز
-230 روز
آرشیو پست ها
📌 1.2-dars: Vektor amallari — Deep Learning Mathematics
🧮 Qo‘shish, ayirish, skalyar ko‘paytma, uzunlik va norma turlari (L1, L2, L∞)
@EldorML
Bugungi darsda vektor amallarini o‘rganamiz — bu Deep Learning matematik poydevori. Har bir neyron, har bir parameter, har bir gradient — aslida vektordir!
💠 Vektorlarni qo‘shish va ayirish
import numpy as np
v1 = np.array([2, 3])
v2 = np.array([1, 4])
print("Qo‘shish:", v1 + v2)
print("Ayirish:", v1 - v2)
📘 Har bir komponent bo‘yicha qo‘shish/ayirish. Geometrik jihatdan — yo‘nalishli ko‘chish.
💠 Skalyar ko‘paytma (dot product)
a = np.array([2, 5, 3])
b = np.array([4, 1, 2])
print(np.dot(a, b))
📘 O‘xshashlik va burchakni bildiradi.
🧠 Deep Learningda — signal va parametrlarning weighted sum hisoblanadi.
💠 Vektor uzunligi (magnitude)
v = np.array([3, 4])
print(np.linalg.norm(v))
📘 Bu vektorning kuchi yoki masshtabi.
🧠 Modelda normalizatsiya uchun ishlatiladi.
💠 Norma turlari: L1, L2, L∞
v = np.array([3, -4, 5])
print("L1:", np.linalg.norm(v, 1))
print("L2:", np.linalg.norm(v, 2))
print("L∞:", np.linalg.norm(v, np.inf))
📘
* L1 (Manhattan): |v₁| + |v₂| + |v₃|
* L2 (Euclidean): √(v₁² + v₂² + v₃²)
* L∞ (Chebyshev): max(|vᵢ|)
💠 Geometrik ko‘rinish
import matplotlib.pyplot as plt
v1 = np.array([2,1])
v2 = np.array([1,3])
plt.quiver(0,0,v1[0],v1[1],angles='xy',scale_units='xy',scale=1,color='r',label='v₁')
plt.quiver(0,0,v2[0],v2[1],angles='xy',scale_units='xy',scale=1,color='b',label='v₂')
plt.legend(); plt.grid(True); plt.show()
📘 Vektorlar fazoda yo‘nalish va uzunlik orqali ifodalanadi.
🎯 Xulosa:
✅ Vektor amallari — neyron tarmoqlarning matematik asosi
✅ Normlar — parametrlarni nazorat qiladi
✅ L1, L2, L∞ — modelni barqaror va kuchli qiladi
🤝 Video dars: 🎥 YouTube havola
🖥️ Colab kod: 📂 Colab havola
📘 Kursdagi barcha darslar: Kursga havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML📌 1.1-dars: Hamma narsa — vektor
🧠 Scalars, Vectors, Matrices, Tensors va Ma’lumotlarni Raqamli Ifodalash
@EldorML
Bugungi darsda MLdagi eng asosiy tushunchani o‘rganamiz: har qanday ma’lumot (rasm, tovush, matn) aslida raqamli vektor ko‘rinishida ifodalanadi!
💠 Scalar — yagona qiymat
a = 5
b = 3.14
📘 Scalar — bitta son. Masalan: 5 kg yoki 3.14 rad.
💠 Vector — yo‘nalishga ega raqamlar to‘plami
import numpy as np
v = np.array([2, 3, 5])
print(v.shape)
📘 [2, 3, 5] — 3 o‘lchovli vektor.
💠 Matrix — vektorlarning jadvali
M = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(M.shape)
📘 2D tuzilma — rasm yoki jadval kabi ma’lumotlarni ifodalaydi.
💠 Tensor — ko‘p o‘lchovli ma’lumot
T = np.random.rand(2,3,4)
print(T.shape)
📘 Tensor — ko‘p o‘lchovli massiv. Masalan, rasm (balandlik × kenglik × rang).
🖼️ Rasm → vektor
from PIL import Image
import requests, numpy as np
from io import BytesIO
url = "https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/Black_and_white_cat.jpg/320px-Black_and_white_cat.jpg"
img = Image.open(BytesIO(requests.get(url).content)).resize((64,64))
arr = np.array(img)
print(arr.shape)
print(arr.flatten()[:10])
📘 Har bir piksel — raqam. Rasm → tensor → vektor.
🎵 Tovush → vektor
import librosa, matplotlib.pyplot as plt, librosa.display
y, sr = librosa.load("https://www2.cs.uic.edu/~i101/SoundFiles/BabyElephantWalk60.wav")
librosa.display.waveshow(y, sr=sr)
plt.title("Tovush to‘lqini")
plt.show()
📘 Har bir amplituda qiymati — tovushning raqamli ifodasi.
📝 Matn → vektor
from sklearn.feature_extraction.text import TfidfVectorizer
docs = ["AI ajoyib", "Men AI o‘rganayapman"]
X = TfidfVectorizer().fit_transform(docs)
print(X.toarray())
📘 Har bir so‘z — raqamli o‘lchov (TF-IDF yoki embedding).
🎯 Xulosa:
✅ Rasm — 3D tensor
✅ Tovush — 1D signal
✅ Matn — 1D vektor
Hammasi raqamlarga aylantiriladi va modelga shunday kiradi!
🤝 Video dars: 🎥 YouTube havola
🖥️ Colab kod: 📂 Colab havola
📘 Kursdagi barcha darslar: Kursga havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML📢 Do‘stlar! Nihoyat navbat yetdi. Yangi kursni boshlaymiz!
💡 Bu safar sizlar bilan Deep Learning Matematikasi: Intensiv Kursni o‘rganamiz!
Bu kurs — “Maths for Deep Learning” deb nomlangan ilg‘or kursning to‘liq, o‘zbekcha va tushunarli talqini bo‘ladi 🇺🇿
📘 Kursda quyidagi asosiy yo‘nalishlarni bosqichma-bosqich o‘rganamiz:
- Vektorlar, matritsalar, va ularning geometrik ma’nosi
- Gradient descent, backpropagation, va optimization algoritmlari
- Ehtimollik va information theory asoslari
- Convolution va attention mexanizmlari
- Transformer va diffusion modellarining matematik intuitiv tahlili
- Training stability, normalization, va regularization g‘oyalari
🧠 Kurs faqat formulalar emas, balki intuitiv tushuncha va geometrik tasavvur orqali chuqur o‘rganish uchun mo‘ljallangan.
📅 Kurs davomiyligi:
Bu kurs 4 haftalik emas. Undagi mavzular murakkabroq va kengroq.
Shuning uchun, taxminan 2–3 oy davom etadi. Lekin men hammasini eng oson va intuitiv shaklda tushuntirishga harakat qilaman 💪
📖 Shu o‘rinda, uzr so‘rayman: kursdagi terminlarning ayrimlari ingliz tilidan to‘liq o‘zbekchaga tarjima qilish oson emas.
Shunday bo‘lsa-da, har bir atamani sizga eng yaqin va tushunarli shaklda izohlab berishga harakat qildim 🙏
👉 Kurs rejasi: Kurs rejasiga havola
@EldorML
🎉 Hurmatli do‘stlar!
Hammani tabriklayman!
Python Intensiv Kursimiz yakunlandi! 🚀
Sizlarning faolligingiz va doimiy qo‘llab-quvvatlashingiz tufayli kursni muvaffaqiyatli tugatdik. Har biringiz bu safarning muhim qismisiz, rahmat sizlarga! 🙌
📚 Agar do‘stlaringiz ham Python o‘rganishni istasa, mana barcha materiallar bir joyda jamlangan:
📝 Maqolalar va videolar: Python Intensiv Kursi
✅ Ushbu materiallar yordamida siz do‘stlaringiz bilan Python dasturlash tilini o‘rganishingiz mumkin bo‘ladi.
✨ Yangi intensiv kursni tez orada boshlaymiz: Math for Deep Learning
💬 Takliflaringizni izohlarda yozib qoldiring. Bu men uchun juda muhim!
@EldorML
📌 4.5-dars: Amaliy mashq – Dataset tozalash va grafiklar chizish
🐍 @EldorML
🎉 Tabriklaymiz! Siz Python intensiv kursining to‘rtinchi haftasini yakunlayapsiz 👏
Endi esa ma’lumotlar bilan tahlilchi kabi ishlashni o‘rganamiz!
📊 Bu safar siz
seaborn kutubxonasidagi tips datasetidan foydalanib, ma’lumotlarni tozalash, transformatsiya qilish va vizualizatsiya amaliyotini bajarasiz.
🎯 Vazifa: Pandas va Matplotlib/Seaborn yordamida ma’lumotlarni tayyorlash, tozalash va 5 xil grafik chizish.
🧩 Topshiriqlar:
- Datasetni yuklang va tahlil qiling (`info()`, `describe()`)
- Categorical ustunlarni aniqlang va to‘g‘ri turlarga o‘tkazing
- tip_percent ustunini yarating (foizli choychaqa)
- 0 dan 50% gacha bo‘lmagan qiymatlarni tozalang (outlierlarni olib tashlang)
- 5 ta grafik chizing:
📈 Histogram (`total_bill`)
📦 Boxplot (`tip_percent` – `day`)
🔵 Scatter (`total_bill` vs `tip`)
🟩 Barplot (`day` – o‘rtacha tip`)
🔥 Heatmap (korrelyatsiya jadvali)
✅ Natijada siz:
- Pandas bilan ma’lumotlarni tozalashni
- Outlier va NaN qiymatlarni boshqarishni
- Seaborn yordamida chiroyli grafiklar chizishni
- CSV bilan ishlashni o‘rganasiz. 🚀
⚠️ Bonus:
Lunch va Dinner o‘rtasida choychaqa foizini taqqoslang — kim ko‘proq beradi? 🍽️
🖥️ Batafsil topshiriq: 4.5 Amaliy mashq – Dataset tozalash va grafiklar chizish
📚 Python kursi rejasi: Kursga havola
@EldorML📌 4.3–4.4-darslar: Matplotlib, Seaborn va Datetime — Ma’lumotlarni Vizualizatsiya Qilish va Sana/Vaqt bilan Ishlash
🐍 @EldorML
Bugungi darsda vizualizatsiya va sana/vaqt bilan ishlashni o‘rganamiz — bu Data Science yo‘lida juda muhim bosqich!
💠 Matplotlib asoslari
Pythondagi eng mashhur grafik kutubxona!
👉 Kutubxonani import qilish:
import matplotlib.pyplot as plt
import numpy as np
👉 Oddiy grafik:
y = np.array([5, 8, 12, 7, 10])
x = np.arange(len(y))
plt.plot(x, y)
plt.title('Chiziqli Grafik')
plt.show()
👉 Grafik turlari:
* plt.scatter() — nuqtali grafik
* plt.bar() — ustunli grafik
* plt.hist() — gistogramma
* plt.pie() — doira diagramma 🍩
👉 Grafikni bezash:
plt.plot(x, y, color='purple', marker='o', linestyle='--', linewidth=2)
plt.grid(True)
👉 Bir nechta grafikni bitta oynada:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[1, 1].hist(y)
plt.tight_layout()
plt.show()
💠 Seaborn — Chiroyli va Statistik Grafiklar
👉 Kutubxonani import qilish:
import seaborn as sns
import pandas as pd
👉 Namunaviy DataFrame:
data = {
'Ism': ['Ali', 'Vali', 'Aziza', 'Dilshod', 'Malika', 'Javohir'],
'Yosh': [23, 25, 22, 27, 24, 26],
'Daromad': [3.2, 4.5, 2.8, 5.1, 3.9, 4.2],
'Jins': ['Erkak', 'Erkak', 'Ayol', 'Erkak', 'Ayol', 'Erkak']
}
df = pd.DataFrame(data)
👉 Asosiy grafiklar:
sns.scatterplot(data=df, x='Yosh', y='Daromad', hue='Jins', style='Jins')
sns.boxplot(data=df, x='Jins', y='Daromad')
👉 Seaborn ichki dataset:
tips = sns.load_dataset('tips')
sns.heatmap(tips.corr(numeric_only=True), annot=True, cmap='coolwarm')
👉 Uslublash:
sns.set_style('darkgrid')
plt.title('Choy miqdori va umumiy hisob o‘rtasidagi bog‘liqlik')
plt.show()
📅 Datetime — Sana/Vaqt bilan Ishlash
👉 Import va hozirgi vaqt:
import datetime
hozir = datetime.datetime.now()
print('Hozirgi vaqt:', hozir)
👉 Sana yaratish:
sana = datetime.datetime(2025, 10, 10, 14, 30)
print(sana.strftime('%d-%m-%Y %H:%M'))
👉 Vaqt farqi:
tugilgan = datetime.datetime(1995, 6, 1)
farq = hozir - tugilgan
print('Yosh (kunlarda):', farq.days)
👉 Pandas bilan datetime:
import pandas as pd
sana_seriya = pd.to_datetime(['2025-01-01','2025-02-10','2025-03-20'])
ma_lumot = pd.Series([10,15,7], index=sana_seriya)
ma_lumot.plot(title='Sana bo‘yicha ma’lumotlar')
plt.show()
🎯 Xulosa
✅ Matplotlib — asosiy vizualizatsiya vositasi
✅ Seaborn — chiroyli statistik grafiklar
✅ Datetime — vaqt bilan ishlash uchun asosiy modul
🤝 Video dars: 🎥 YouTube havola
🖥️ Colab kod: 📂 Colab havola
📘 Kursdagi barcha darslar: Kursga havola
🚨 Videolar tayyorgarliksiz yozilgan, nutqda xatolar bo‘lishi mumkin. Uzr so‘rayman 🙏
@EldorML📌 4.2-dars: Pandas — Jadval ko‘rinishidagi ma’lumotlar bilan ishlash
🐍 @EldorML
Pythonda Pandas kutubxonasi yordamida jadval (DataFrame) ko‘rinishidagi ma’lumotlar bilan ishlashni o‘rganamiz.
Pandas — bu Data Science, tahlil, va ma’lumotlar tozalash jarayonlarining yuragi ❤️.
💠 Pandas asoslari
👉 Kutubxonani import qilish:
import pandas as pd
👉 Oddiy DataFrame yaratish:
df = pd.DataFrame({
'Ism': ['Ali', 'Vali', 'Gulnoza'],
'Yosh': [23, 25, 21],
'Shahar': ['Toshkent', 'Samarqand', 'Buxoro']
})
print(df)
👉 Fayldan o‘qish:
df = pd.read_csv('students.csv')
💠 DataFrame bilan amaliy ishlar
✅ Dastlabki qatorlar: df.head()
✅ Ma’lumot turi: df.info()
✅ Statistika: df.describe()
✅ Ustun tanlash: df['Ism'], df[['Ism','Yosh']]
✅ Qator tanlash: df.iloc[0], df.loc[1,'Yosh']
💠 Filtrlash, tartiblash va guruhlash (amaliy misollar)
📍 23 yoshdan katta talabalar:
talabalar = df[df['Yosh'] > 23]
print(talabalar)
📍 Yosh bo‘yicha tartiblash (kichikdan kattaga):
df.sort_values(by='Yosh', ascending=True, inplace=True)
print(df[['Ism','Yosh']])
📍 Shahar bo‘yicha o‘rtacha yoshni topish:
print(df.groupby('Shahar')['Yosh'].mean())
📍 Eng yuqori ball olgan talaba:
print(df.loc[df['Ball'].idxmax()])
📍 Faqat Toshkentdagi talabalar:
print(df[df['Shahar'] == 'Toshkent'])
💠 Yo‘q qiymatlar (NaN) bilan ishlash va ma’lumotlarni eksport qilish
📍 Yo‘q qiymatlar sonini tekshirish:
print(df.isnull().sum())
📍 Bo‘sh qiymatlarni to‘ldirish:
df['Ball'].fillna(df['Ball'].mean(), inplace=True)
📍 Bo‘sh qatorlarni o‘chirish:
df.dropna(inplace=True)
📍 Natijani yangi faylga yozish:
df.to_csv('yangi_talabalar.csv', index=False)
✅ Endi yangi_talabalar.csv faylida tozalangan va tayyor ma’lumotlar saqlanadi.
🎯 Xulosa
* Pandas — Excelni Python ichida ishlatish kabi qulay 🔥
* Jadvalni filtrlash, tahlil qilish va eksport qilish uchun mukammal vosita
* Data Scientist uchun eng zarur kutubxonalardan biri 💪
🚨 Videolar tayyorgarliksiz yozilgan, nutqda xatolar bo‘lishi mumkin. Uzr so‘rayman.
🤝 Video dars: 🎥 YouTube havola
🖥️ Colab kod: 📂 Colab havola
📘 Kursdagi barcha darslar: Kursga havola
@EldorML📌 4.1-dars: NumPy — Ma’lumotlar bilan ishlashning asosi
🐍 @EldorML
Pythonda NumPy kutubxonasi yordamida massivlar, vektorlar va matritsalar bilan ishlashni o‘rganamiz.
NumPy — bu ma’lumotlar tahlili, sun’iy intellekt, va ilmiy hisoblashlar uchun eng muhim vositalardan biridir. ⚡️
💠 NumPy asoslari
👉 NumPy kutubxonasini import qilish:
import numpy as np
👉 Oddiy massiv yaratish:
arr = np.array([1, 2, 3, 4])
print(arr)
👉 Nol va birlik massivlar:
np.zeros((2,3))
np.ones((3,3))
np.eye(4)
👉 Ketma-ketliklar va random sonlar:
np.arange(0,10,2)
np.linspace(0,1,5)
np.random.randint(0,10,(3,3))
✅ shape, ndim, size, dtype yordamida massiv haqida ma’lumot olish mumkin.
✅ reshape, flatten, T bilan o‘lchamni o‘zgartirish mumkin.
💠 Matematik va statistik amallar
arr = np.array([[1,2,3],[4,5,6]])
print(np.sum(arr)) # 21
print(np.mean(arr)) # 3.5
print(np.std(arr)) # Standart og‘ish
print(np.max(arr)) # Eng katta qiymat
✅ np.where, np.clip, np.unique, np.sort — shartli va maxsus amallar uchun juda qulay.
✅ np.linalg.inv, np.dot, np.linalg.det — matritsa amallari uchun ishlatiladi.
💠 Amaliy mashq
0 dan 10 gacha random sonlar yarating.
5 dan kichiklarini 0, 5 dan kattalarini 1 qilib o‘zgartiring:
arr = np.random.randint(0,11,20)
print("Asl:", arr)
arr = np.where(arr < 5, 0, 1)
print("O‘zgartirilgan:", arr)
🎯 Xulosa
- NumPy → tez va samarali hisoblash vositasi
- Pandas, Scikit-learn, TensorFlow — barchasi NumPy asosida ishlaydi
- Har qanday data scientist uchun zarur bilim 🔥
🚨 Videolar tayyorgarliksiz qilinmoqda, nutqda tutilishlar bo‘lishi mumkin. Uzr so‘rayman.
🤝 Video Dars: 🎥 YouTube havola
🖥️ Colab kod: 📂 Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📢 Aziz do‘stlar!
Afsuski, gripp bo‘lib qoldim 🤒. Shu sababli bu haftadagi kursimiz biroz kechikadi.
Noqulaylik uchun uzr so‘rayman va tushunganingiz uchun rahmat 🙏.
📌 3.7-dars: Yakuniy loyiha – Mini API Client 🐍 @EldorML
🎉 Tabriklaymiz! Siz Python intensiv kursining uchinchi haftasini muvaffaqiyatli yakunlamoqdasiz. 👏
Endi o‘rgangan bilimlaringizni amaliy loyiha orqali mustahkamlash vaqti keldi.
📌 Ushbu loyiha ixtiyoriy: bajarish yoki bajarmaslik o‘zingizga bog‘liq. Lekin sinab ko‘rsangiz, uchinchi hafta mavzularini puxta o‘zlashtirasiz.
🎯 Vazifa:
OOP, decorator, generator, virtual environment, test, requests va JSON bilimlaringizni qo‘llab, Mini API Client yarating.
🧩 Topshiriqlar:
- ApiClient klassi tuzib, APIdan ma’lumot oling
- Meros olish va polymorphism asosida turli clientlar (WeatherClient, CryptoClient) yarating
- Decorator orqali API chaqiruvi vaqtini o‘lchang
- Generator yordamida JSON ro‘yxatini elementma-element chiqaring
- requests yordamida APIdan ma’lumot olib, data.json faylga yozing va qayta o‘qing
- unittest yoki pytest yordamida kamida 3 ta test yozing
- Virtual environment va requirements.txt ni ishlating
✅ Bu loyiha orqali siz:
- OOP (class, object, inheritance, polymorphism)
- Decorators & Generators
- Virtual environment & paketlar
- Test yozish (unittest, pytest)
- Web requests & JSON bilan ishlash
bo‘yicha bilimlaringizni bir loyihada qo‘llaysiz. 🚀
⚠️ Batafsil: Topshiriq uchun havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML
📌 3.5–3.6-dars: Web so‘rovlar va JSON fayllar 🐍 @EldorML
Pythonda requests kutubxonasi orqali internetdan ma’lumot olib kelish va API chaqirishni, json moduli orqali esa ma’lumotlarni faylga yozish va o‘qishni o‘rganamiz. 🌐📂
💠 Web so‘rovlar (requests)
👉 Internet va APIdan ma’lumot olish uchun ishlatiladi.
import requests
# GET so‘rovi
res = requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(res.json())
# POST so‘rovi
url = "https://jsonplaceholder.typicode.com/posts"
data = {"title": "Salom", "body": "Bu test", "userId": 1}
res = requests.post(url, json=data)
print(res.json())
✅ status_code bilan javob holatini tekshirish muhim.
✅ timeout va xatoliklarni (404, connection error) boshqarishni unutmang.
💠 JSON bilan ishlash
👉 Ma’lumotlarni faylga yozish va fayldan o‘qish uchun ishlatiladi.
import json
# JSON yozish
ma_data = {"ism": "Eldor", "yosh": 25}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(ma_data, f, ensure_ascii=False, indent=4)
# JSON o‘qish
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
print(data)
✅ encoding="utf-8" yozish o‘zbekcha harflar uchun muhim.
✅ Xato formatdagi JSON fayllar uchun try/except ishlatish kerak.
🎯 Xulosa:
- requests → internet va API bilan ishlash
- json → ma’lumotlarni faylga yozish/o‘qish
- Edge cases → timeout, 404, JSONDecodeError, Unicode muammolari
🚨 Videolar tayyorgarliksiz qilinmoqda, nutqda tutilishlar bo‘lishi mumkin. Uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 3.3–3.4-dars: Virtual environment va Test yozish 🐍 @EldorML
Pythonda Virtual environment loyihalar orasida kutubxonalarni alohida boshqarish imkonini beradi.
Test yozish (unittest, pytest) esa kodimiz to‘g‘ri ishlayotganini tekshirishga yordam beradi.
💠 Virtual environment (venv)
👉 Har bir loyiha uchun alohida muhit yaratish mumkin.
Syntax:
# Virtual muhit yaratish
python -m venv myenv
# Linux/Mac
source myenv/bin/activate
# Windows
myenv\Scripts\activate
# Paket o‘rnatish
pip install numpy
# requirements.txt yaratish
pip freeze > requirements.txt
✅ Loyihangiz boshqa loyihalardan mustaqil ishlaydi.
💠 unittest (standart test kutubxona)
👉 Funksiyalarni tekshirish uchun ishlatiladi.
import unittest
def add(x, y):
return x + y
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
self.assertNotEqual(add(2, 2), 5)
if __name__ == '__main__':
unittest.main()
💠 pytest (qulayroq usul)
👉 Oddiy assert bilan test yoziladi.
def add(x, y):
return x + y
def test_add():
assert add(2, 3) == 5
assert add(2, 2) != 5
Terminalda ishga tushirish:
pytest test_math.py
🎯 Xulosa:
- venv → loyihangizni izolyatsiya qiladi
- pip → paketlarni boshqaradi
- unittest/pytest → kodning to‘g‘riligini tekshiradi
🚨 Videolar tayyorgarliksiz qilinmoqda, nutqda tutilishlar bo‘lishi mumkin. Uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 3.2-dars: Decorators va Generators 🐍 @EldorML
Pythonda Decorators (dekoratorlar) va Generators (generatorlar) — kodni ixcham va samarali yozishga yordam beradigan ikki muhim tushuncha.
💠 Decorators (Dekoratorlar)
👉 Funksiyaga qo‘shimcha imkoniyat qo‘shish uchun ishlatiladi.
Syntax:
@dekorator_nomi
def funksiya_nomi():
pass
def salom_dekorator(func):
def wrapper():
print("Assalomu alaykum!")
func()
print("Xayr!")
return wrapper
@salom_dekorator
def ism_ber():
print("Mening ismim Eldor")
ism_ber()
✅ Funksiyani oldidan va keyin kod bajarish mumkin.
💠 Parametrli Decorator
👉 Dekorator funksiyani necha marta ishlatishni boshqarishi mumkin.
def takrorla(n):
def dekorator(func):
def wrapper(*args, **kwargs):
for _ in range(n):
func(*args, **kwargs)
return wrapper
return dekorator
@takrorla(3)
def salom(ism):
print(f"Salom, {ism}!")
salom("Madina")
💠 Generators (Generatorlar)
👉 Xotirani tejab, qiymatlarni ketma-ket qaytaradi. yield kalit so‘zi ishlatiladi.
Syntax:
def generator_funksiyasi():
yield qiymat1
yield qiymat2
def sanash():
for i in range(1, 4):
yield i
for son in sanash():
print(son)
✅ Natija: 1 2 3
💠 next() bilan Generator
👉 Har chaqirilganda keyingi qiymatni qaytaradi.
def generator():
yield "bir"
yield "ikki"
yield "uch"
g = generator()
print(next(g))
print(next(g))
print(next(g))
💠 Generator Expression
👉 List comprehension kabi, ammo generator hosil qiladi.
kvadratlar = (x**2 for x in range(5))
print(list(kvadratlar)) # [0, 1, 4, 9, 16]
🎯 Xulosa:
- Dekoratorlar → funksiyalarga qo‘shimcha imkoniyat qo‘shadi
- Generatorlar → xotirani tejaydi va qiymatlarni qadam-baqadam qaytaradi
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo‘lishi mumkin. Buning uchun uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 3.1-dars: OOP (Class, Object, Inheritance, Polymorphism) 🐍 @EldorML
Pythonda Obyektga Yo‘naltirilgan Dasturlash (OOP) — katta loyihalarda kodni tartibli, qayta foydalaniladigan va oson boshqariladigan qilish uchun asosiy uslub hisoblanadi.
💠 Class & Object
👉 Klass — reja (retsept), obyekt — undan yaratilgan haqiqiy narsa.
class Car: # Klass yaratish
def __init__(self, brand, model): # Konstruktor
self.brand = brand
self.model = model
def drive(self): # Oddiy (instance) metod
print(f"{self.brand} {self.model} haydalyapti 🚗")
car1 = Car("Toyota", "Corolla") # Obyekt yaratish
car1.drive()
💠 Inheritance (Meros olish)
👉 Bola klass ota klassdan xususiyat va metodlarni oladi.
class Animal:
def speak(self):
print("Hayvon tovush chiqaryapti")
class Dog(Animal): # Meros olish
def speak(self): # Metodni qayta yozish
print("Vov-vov!")
dog = Dog()
dog.speak()
💠 Polymorphism (Ko‘p shakllilik)
👉 Bir xil metod turli obyektlarda turlicha ishlaydi.
class Cat:
def sound(self):
return "Miyov"
class Dog:
def sound(self):
return "Vov-vov"
for animal in [Cat(), Dog()]:
print(animal.sound())
💠 Instance, Classmethod & Staticmethod
👉 self → obyekt darajasida, cls → klass darajasida, staticmethod → yordamchi funksiya.
class Car:
total_cars = 0
def __init__(self, brand):
self.brand = brand
Car.total_cars += 1
def info(self): # Instance method (self)
return f"Brend: {self.brand}"
@classmethod
def get_total_cars(cls): # Class method (cls)
return f"Jami mashinalar: {cls.total_cars}"
@staticmethod
def car_types(): # Static method
return ["Sedan", "SUV", "Coupe"]
car1 = Car("Toyota")
print(car1.info())
print(Car.get_total_cars())
print(Car.car_types())
💠 Getter & Setter
👉 Xususiyatlarni xavfsiz olish va o‘zgartirish uchun.
class Car:
def __init__(self, year):
self._year = year
@property
def year(self): # Getter
return self._year
@year.setter
def year(self, new_year): # Setter
if new_year < 1886:
print("❌ Mashina yili noto‘g‘ri!")
else:
self._year = new_year
car = Car(2020)
print(car.year)
car.year = 2025
💠 Encapsulation (Inkapsulyatsiya)
👉 Public, Protected, Private orqali ma’lumotni himoya qilish.
class Car:
def __init__(self):
self.brand = "Toyota" # Public
self._engine = "V6" # Protected
self.__secret_code = "123" # Private
def show_secret(self):
print(self.__secret_code)
car = Car()
print(car.brand) # Public
print(car._engine) # Protected (tavsiya qilinmaydi)
car.show_secret() # Private ga klass ichidan kirish
🎯 Xulosa:
- Klass va obyekt — asosiy qurilish g‘ishtlari
- Meros olish — kodni qayta ishlatish
- Polimorfizm — metodlarning turlicha ishlashi
- Instance, Classmethod, Staticmethod — farqlarini tushunish
- Getter/Setter — xususiyatlarni boshqarish
- Inkapsulyatsiya — ma’lumotni himoya qilish
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo‘lishi mumkin. Buning uchun uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 2.7-dars: Yakuniy loyiha – Oddiy Calculator App va CSV fayl o‘qish 🐍 @EldorML
🎉 Tabriklaymiz! Siz Python intensiv kursining ikkinchi haftasini muvaffaqiyatli yakunlamoqdasiz. 👏
Endi o‘rgangan bilimlaringizni amaliy loyiha orqali mustahkamlash vaqti keldi.
📌 Ushbu loyiha ixtiyoriy: bajarish yoki bajarmaslik o‘zingizga bog‘liq. Lekin sinab ko‘rsangiz, ikkinchi hafta mavzularini puxta o‘zlashtirasiz.
🎯 Vazifa:
Oddiy Calculator App tuzing va CSV fayldan ma’lumot o‘qishni mashq qiling.
Talablar:
- Funksiya yozib, ikki son va amal turini hisoblang (+, −, \*, /)
- Xatoliklarni
try-except bilan boshqaring (0 ga bo‘lish holati va boshqalar)
- Foydalanuvchi input orqali ma’lumot kiritsin
- csv modulidan foydalanib, fayldagi ma’lumotlarni ekranga chiqaring
- Qo‘shimcha: list comprehension orqali CSV ma’lumotlarini qayta ishlash
✅ Bu loyiha orqali siz:
- Funksiya va parametrlar
- Exception handling
- List comprehension
- Fayllar bilan ishlash (CSV)
bo‘yicha o‘rganganlaringizni bir loyihada qo‘llaysiz.
⚠️ Batafsil: Topshiriq uchun havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 2.5–2.6-dars: Exception Handling va List Comprehension 🐍 @EldorML
Pythonda kodni yanada ishonchli va ixcham qilish uchun xatoliklarni boshqarish va list comprehension ishlatiladi.
💠 Exception Handling (xatoliklarni ushlash)
👉 Dastur xato bo'lsa ham to'xtab qolmasligi uchun ishlatiladi.
Sintaksis:
try:
# xato bo'lishi mumkin bo'lgan kod
except XatolikNomi:
# xato bo'lganda bajariladigan kod
else:
# xato bo'lmasa ishlaydi
finally:
# har doim bajariladi
Misol:
try:
son = int("abc")
except ValueError:
print("Xatolik: son kiritilmadi!")
finally:
print("Dastur tugadi")
📌 Ko'p ishlatiladigan xatoliklar:
* ZeroDivisionError → nolga bo'lish
* ValueError → noto'g'ri qiymat
* FileNotFoundError → fayl topilmadi
💠 List Comprehension
👉 Ro'yxatlar yaratishning ixcham va tezkor usuli.
Sintaksis:
[ifoda for element in kolleksiya if shart]
Misollar:
# Oddiy
kvadratlar = [x*x for x in range(1, 6)]
# Shart bilan
juftlar = [x for x in range(10) if x % 2 == 0]
# Ichma-ich
juftliklar = [(x, y) for x in range(2) for y in range(3)]
🎯 Xulosa:
* try-except → xatoliklarni ushlab dastur to'xtashini oldini oladi
* else → faqat xato bo'lmasa ishlaydi
* finally → doim bajariladi (masalan, fayl yopish)
* list comprehension → kodni qisqa va o'qilishi oson qiladi
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo‘lishi mumkin. Buning uchun uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 2.3–2.4-dars: Modullar va Fayllar bilan ishlash 🐍 @EldorML
Pythonda tayyor kutubxonalar va fayllar bilan ishlash — loyihalar bilan ishlashda juda muhim.
💠 Modullarni ulash
Oddiy qilib aytganda, modul — bu kodlarni alohida faylga joylashtirish va kerakli joyda chaqirib ishlatish imkoniyati.
👉 import kalit so‘zi orqali kutubxonalarni chaqiramiz.
import math
import random
💠 math moduli
👉 Matematik hisob-kitoblar uchun.
print(math.sqrt(16)) # 4.0
print(math.pow(2, 3)) # 8.0
print(math.pi) # 3.1415...
💠 random moduli
👉 Tasodifiy son va tanlovlar uchun.
print(random.random()) # 0..1 oralig‘ida son
print(random.randint(1,10)) # 1 dan 10 gacha butun son
print(random.choice(["olma", "banan", "gilos"])) # tasodifiy tanlov
💠 Fayllar bilan ishlash (txt)
✅ with open → xavfsiz va avtomatik yopiladi:
with open("matn.txt", "w") as f:
f.write("Salom, Python!")
with open("matn.txt", "r") as f:
print(f.read())
✅ open + close → faylni qo‘l bilan yopish kerak:
f = open("matn.txt", "w")
f.write("Salom, Python!")
f.close()
f = open("matn.txt", "r")
print(f.read())
f.close()
💠 CSV fayllar bilan ishlash
👉 Jadval ko‘rinishidagi ma’lumotlar uchun.
import csv
with open("talabalar.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["Ism", "Yosh"])
writer.writerow(["Ali", 20])
with open("talabalar.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
print(row)
🎯 Xulosa:
* math → matematik funksiyalar
* random → tasodifiy son va tanlovlar
* txt → oddiy matn fayllari bilan ishlash
* csv → jadval ko‘rinishidagi fayllar bilan ishlash
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo‘lishi mumkin. Buning uchun uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 2.2-dars: Lambda, *args, **kwargs va kengaytirilgan funksiyalar 🐍 @EldorML
Pythonda funksiyalar yanada kuchliroq bo'lishi uchun bir nechta qo'shimcha imkoniyatlar mavjud.
💠 Lambda funksiyalar
👉 Qisqa, anonim (nom berilmagan) funksiyalar.
kvadrat = lambda x: x * x
print(kvadrat(5)) # 25
💠 *args
👉 Funksiyaga istalgancha argument berish mumkin, ular tuple sifatida saqlanadi.
def yigindi(*sonlar):
return sum(sonlar)
print(yigindi(1, 2, 3, 4)) # 10
💠 **kwargs
👉 Kalit-qiymat juftliklari orqali cheksiz parametr qabul qiladi (dict ko'rinishida).
def info(**talaba):
print(talaba)
info(ism="Ali", yosh=20, kurs=2)
# {'ism': 'Ali', 'yosh': 20, 'kurs': 2}
💠 Ichki (nested) funksiyalar
👉 Funksiya ichida funksiya yaratish mumkin.
def tashqi():
def ichki():
print("Ichki funksiya")
ichki()
💠 Funksiyalarni uzatish va qaytarish
👉 Funksiya boshqa funksiyaga argument bo'lishi yoki uni natija sifatida qaytarishi mumkin.
def bajarish(funksiya, x):
return funksiya(x)
def kvadrat(n):
return n * n
print(bajarish(kvadrat, 5)) # 25
🎯 Xulosa:
- Lambda → qisqa va sodda funksiyalar uchun
- *args → cheksiz oddiy argumentlar
- **kwargs → cheksiz kalit-qiymat argumentlari
- Nested functions → kodni modular qilish uchun
- Funksiyalarni uzatish/qaytarish → funksiyalarni obyekt sifatida ishlatish imkoniyati
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo'lishi mumkin. Buning uchun uzr so'rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 2.1-dars: Funksiyalar va Parametrlar 🐍 @EldorML
Pythonda kodni tartibli va qayta ishlatiladigan qilish uchun funksiyalar ishlatiladi.
💠 Funksiya yaratish
Funksiya yaratish uchun
def kalit so‘zi ishlatiladi, undan keyin funksiya nomi va qavslar yoziladi. Qavs ichida parametrlar bo‘lishi mumkin. So‘ngra ikki nuqta “:” qo‘yiladi va keyingi qatorlarda kod yoziladi.
def salom():
print("Salom, Python!")
💠 Funksiyani chaqirish
Funksiyani chaqirish uchun uning nomi va qavslar yoziladi:
salom()
💠 Parametrlar va argumentlar
def salom_ber(ism):
print("Salom,", ism)
salom_ber("Ali") # Salom, Ali
salom_ber("Madina") # Salom, Madina
💠 Bir nechta parametrlar
def hisobla(a, b):
print("Yig‘indi:", a + b)
hisobla(3, 5) # Yig‘indi: 8
💠 Default parametr (standart qiymat)
def salom_ber(ism="Dunyo"):
print("Salom,", ism)
salom_ber() # Salom, Dunyo
salom_ber("Eldor") # Salom, Eldor
💠 Qiymat qaytarish (return)
def kvadrat(x):
return x * x
print(kvadrat(5)) # 25
🎯 Xulosa:
* Funksiyalar → kodni qayta ishlatish va tartiblash uchun
* Parametrlar → tashqaridan ma’lumot qabul qilish uchun
* Default parametr → argument berilmasa ham ishlaydi
* return → natijani tashqariga qaytaradi
🚨 Videolar tayyorgarliksiz qilinmoqda, shu sabab nutqda tutilishlar bo‘lishi mumkin. Buning uchun uzr so‘rayman.
🤝 Video Dars: YouTube havola
🖥️ Colab code: Colab havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML📌 1.7-dars: Yakuniy loyiha – Oddiy Talaba Ma’lumot Tizimi 🐍 @EldorML
🎉 Tabriklaymiz! Siz Python intensiv kursining birinchi haftasini muvaffaqiyatli yakunladingiz. 👏
Endi bilimlaringizni sinab ko‘rish va mustahkamlash vaqti keldi.
📌 Ushbu loyiha ixtiyoriy — bajarish yoki bajarmaslik o‘zingizga bog‘liq. Lekin sinab ko‘rsangiz, birinchi hafta mavzularini takrorlab olasiz.
🎯 Vazifa:
Oddiy Talaba Ma’lumot Tizimi yarating.
Talablar:
- O‘zgaruvchilar orqali ism, yosh va boshqa ma’lumotlarni saqlang
- List ichida baholarni saqlang ([85, 90, 78])
- Dictionary ichida umumiy ma’lumot bo‘lsin: ism, yosh, kurs, fakultet, baholar, stipendiya
- for sikli yordamida baholarni chiqaring
- if-else bilan o‘rtacha bahoni baholang:
- >= 86 → A’lochi talaba
- 71–85 → Yaxshi talaba
- Aks holda → O‘rtacha talaba
- Set yordamida noyob baholarni ajrating
- while sikli bilan yangi baholar qo‘shing, stop yozilganda to‘xtasin
✅ Bu loyiha orqali siz:
- O‘zgaruvchilar
- List, Dictionary, Set
- for/while sikllari
- if-else shartlari
bo‘yicha o‘rganganlaringizni bitta amaliy loyihada qo‘llab ko‘rasiz.
⚠️ Batafsil: Topshiriq uchun havola
🖥️ Python kurs rejasi: Kursga havola
@EldorML
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
