Oy 1 — Mashqlar to'plami
Bu sahifada barcha mavzularbo'yicha qo'shimcha mashqlar to'plangan. Har bobning oxiridagi mashqlardan tashqari, bu yerdagilarni ham bajaring — chuqurroq tushunish uchun.
🟢 Easy darajadagi mashqlar
Math
- NumPy bilan
(5, 5)random matrix yarating, uning rank'ini hisoblang. [2, 4, 6, 8, 10]vektorining variance va standard deviation'ini qo'lda va NumPy bilan hisoblang.- Quyidagi tasdiqlar to'g'ri yoki noto'g'ri ekanini tushuntiring:
- "Mean — bu doim eng yaxshi markaziy tendensiya o'lchovi"
- "Standard deviation — bu variance'ning kvadrat ildizi"
NumPy
np.eye(5)ishlatib5x5identity matrix yarating.[1, 2, 3, 4, 5, 6, 7, 8, 9]ni(3, 3)matrix'ga reshape qiling va transpose oling.- Ikki random vektor
(100,)orasidagi Euclidean distance'ni hisoblang.
Pandas
- CSV faylni o'qing va birinchi 5 ta qatorni
JSONformatda chiqaring. - Ustun nomidagi bo'sh joylarni
_ga almashtiring (df.columns.str.replace). DataFrame'da ikkala bo'sh va0qiymatlarni topib, ularning sonini chiqaring.
Vizualizatsiya
- Sinus va kosinus funksiyalarini bitta chart'da chizing.
- 4 ta turli rangda
bar plotchizing. - Random
(50, 50)matrix uchunimshowishlatib heatmap chizing.
🟡 Medium darajadagi mashqlar
Real dataset bilan ishlash
- Iris dataset:
seaborn.load_dataset('iris')orqali yuklang.speciesbo'yicha har bir feature distribution'ini violin plot bilan chizing. - Tips dataset:
seaborn.load_dataset('tips')ni yuklang.dayvatimebo'yicha o'rtachatipni pivot table sifatida chiqaring. - Custom dataset: O'zingiz Django/FastAPI loyihangizdan real ma'lumotni eksport qiling (orders, users, events) va EDA boshlash.
Vectorization mashqlari
- Implement
sigmoid(x) = 1 / (1 + exp(-x))funksiyasini NumPy'da. 1M element uchun pure Python loop bilan solishtiring. - Implement
softmax(x) = exp(x) / sum(exp(x))— numerical stability bilan (x - max(x)). - Implementmoving average —
(window=10), NumPy'da loop yo'q.
Pandas pipelines
- E-commerce funnel: foydalanuvchilarning
view → cart → purchaseo'tish nisbatini hisoblang. - Cohort retention: foydalanuvchilarni ro'yxatdan o'tish oyiga ko'ra cohort'larga ajrating, 6 oy
retentionchizing. - RFM Analysis: Recency, Frequency, Monetary metric'larni har mijoz uchun hisoblang va segment'larga ajrating.
🔴 Hard darajadagi mashqlar (Backend integration)
1. Analytics API (FastAPI)
Quyidagi endpoint'lar bilan to'liq FastAPI servis yarating:
POST /api/v1/analytics/upload # CSV/JSON dataset yuklash
GET /api/v1/analytics/{id}/summary # describe() natijasi
GET /api/v1/analytics/{id}/chart # PNG chart qaytarish
GET /api/v1/analytics/{id}/report # ydata-profiling HTML
POST /api/v1/analytics/{id}/query # custom SQL-like so'rov
Talablar:
- Yuklangan datasetlarni Redis'da yoki diskda saqlash (TTL bilan)
- Pydantic models bilan to'liq type-safe
- OpenAPI docs avtomatik
- Pytest bilan unit testlar
2. Django Admin Reports
Mavjud Django loyihangizga (yoki yangi yarating) admin custom action qo'shing:
- Tanlangan obyektlar uchun PDF report generatsiya
- Pandas + matplotlib bilan grafiklar
- ReportLab yoki WeasyPrint bilan PDF
3. Real-time Dashboard
Server-Sent Events (SSE) bilan real-time dashboard yarating:
- FastAPI backend har 5 sekundda fresh data
- Frontend (oddiy HTML+Chart.js)
- Pandas backend'da agregatsiya qiladi
- Plotly JSON formatda data jo'natadi
4. Data Quality Service
Pandera yoki Great Expectations ishlatib:
- Yuklangan CSV uchun schema validation
- Quality score (0-100)
- Anomaliyalarni aniqlash (outliers, type mismatch)
- Slack notification noto'g'ri data kelganda
Mini-loyihalar (har biri 1-2 hafta)
Mini-loyiha 1: Personal Finance Tracker
- O'zingizning bank statement (CSV)
- Pandas bilan kategoriyalash (rules-based)
- Oylik xarajatlar dashboard
- Trend'lar va anomaliyalar
- Streamlit'da interaktiv UI
Mini-loyiha 2: GitHub Profile Analyzer
- GitHub API'dan o'z repolaringizni yuklab oling
- Tillar bo'yicha kod taqsimoti
- Commit faolligi (kalendar heatmap)
- Top kontribyutorlar
- README'ga avtomatik embed qilish
Mini-loyiha 3: O'zbekiston Open Data EDA
- data.gov.uz dan dataset olib EDA qiling
- Insights'larni o'zbek tilida yozing
- Habr.com/dev.to'ga post sifatida chiqaring
Quiz (o'zingizni sinash)
Pandas
df.iloc[0]vadf.loc[0]orasidagi farq nima?df.merge()ninghow='left'vahow='outer'farqi?apply()vamap()qachon ishlatiladi?transform()vaagg()farqi?- Memory'da katta DataFrame'ni qanday optimallashtirish mumkin? (
categorydtype,downcast)
NumPy
np.arrayvanp.asarrayfarqi?- Broadcasting qoidasini tushuntiring.
np.copy()va[:]slicing farqi nima?axis=0vaaxis=1ni(rows, cols)bilan munosabati?np.vectorize()haqiqatdan tezroq qiladimi? (Hint: yo'q!)
Math
cosine similarityformulasi va nima uchun ishlatiladi?gradient descentdalearning ratejuda katta bo'lsa nima bo'ladi?- Normal distribution va uniform distribution farqi?
- Bayes theorem'ni o'z so'zlaringiz bilan tushuntiring.
correlation = 0— bu doim "munosabat yo'q" degan ma'noni anglatadimi? (Hint: yo'q, faqat linear munosabat yo'q)
✅ Oy oxiri checklist
- Math bobi tugatildi, gradient descent kodi yozilgan
- NumPy mashqlari yakunlangan, broadcasting tushunaman
- Pandas EDA mashqlari (Titanic / House Prices)
- Visualization mashqlari, FastAPI'dan PNG qaytaradigan endpoint
- Capstone: bitta to'liq EDA loyihasi GitHub'da
- LinkedIn'da post (loyihaga link bilan)
Tabriklayman! Oy 2 — Klassik ML ga tayyormiz.