Süni intellekt öyrənməyə qərar verdiniz və internetdə "hansı proqramlaşdırma dili ilə başlamalıyam?" axtardınızsa, 99% cavab Python olacaq. Səbəb sadədir: Sİ dünyasının əksər alətləri, kitabxanaları və framework-ləri Python ətrafında qurulub. Amma Python öyrənmək "proqramçı olmaq" demək deyil — Sİ mütəxəssisi olmaq üçün kifayət qədər Python öyrənmək lazımdır. Bu məqalədə sıfırdan başlayanlar üçün konkret plan, real kod nümunələri və Sİ-yə keçid üçün hazırlıq mərhələləri var.
🎯 Niyə Python? Sİ Dünyasının "Lingua Franca"sı
📊 87% Sİ/Data Science mütəxəssisləri Python istifadə edir
📚 TensorFlow, PyTorch, Scikit-learn — hamısı Python əsaslıdır
🧠 Hugging Face — 500,000+ Sİ modeli Python API ilə
📝 Sadə sintaksis — C++-a nisbətən 3x daha az kod yazılır
🌐 Böyük community — hər sualın cavabı Stack Overflow-da var
⚠️ Realist Gözləntilər: 30 Gün Nə Verir, Nə Vermir?
✅ Verir: Python əsaslarını, data strukturlarını, funksiyaları
✅ Verir: NumPy və Pandas ilə data manipulation bacarığı
✅ Verir: Sİ kitabxanalarını başa düşmək üçün hazırlıq
❌ Vermir: Dərhal işə düşəcək Sİ mühəndisi səviyyəsi
❌ Vermir: Deep Learning modelləri yaratmaq bacarığı
🎯 Hədəf: Sİ kurslarına başlamaq üçün kifayət qədər fundament
İlk həftə Python-un "nəfəs alma" qaydalarını öyrənirsiniz. Bu, heç vaxt kod görməmiş insanlar üçün ən çətin mərhələdir — çünki proqramlaşdırma düşüncəsi (computational thinking) formalaşır. Hər gün minimum 1 saat, idealda 2 saat ayırın.
💻 Quraşdırma: Anaconda vs VS Code
Sİ üçün Anaconda tövsiyə olunur — çünki Data Science kitabxanaları (NumPy, Pandas, Matplotlib) hazır qurulur. VS Code isə daha yüngül və professional seçimdir. Başlayanlar üçün Anaconda + Jupyter Notebook idealdır.
python --version
# Çıxış: Python 3.11.5 (və ya daha yeni)
# Jupyter Notebook başlatmaq:
jupyter notebook
📝 Gün 1-2: Dəyişənlər və Data Tipləri
Python-da hər şey obyektdir. Dəyişən təyin etmək sadədir — tip elan etməyə ehtiyac yoxdur. Sİ üçün əsas tiplər: int, float, string, bool, list.
# Dəyişənlər təyin edək
model_name = "Neural Network" # string
accuracy = 0.95 # float (onluq kəsr)
epoch_count = 100 # int (tam ədəd)
is_trained = True # bool (məntiqi)
# Nəticəni çap edək
print(f"Model: {model_name}")
print(f"Dəqiqlik: {accuracy * 100}%")
print(f"Epoch sayı: {epoch_count}")
# Çıxış:
# Model: Neural Network
# Dəqiqlik: 95.0%
# Epoch sayı: 100
🔢 Gün 3-4: List və Dictionary — Sİ-nin Data Anbarı
Sİ-də dataset-lərlə işləyərkən list (massiv) və dictionary (açar-dəyər cütlüyü) hər gün istifadə olunur. Məsələn, şəkil etiketləri, model parametrləri, metriklər bunlarda saxlanılır.
model_params = {
"learning_rate": 0.001,
"batch_size": 32,
"layers": [128, 64, 32], # Neuron sayları list-də
"activation": "relu"
}
# List comprehension ilə epoch loss-ları yaradaq
epochs = 10
losses = [0.5 - (i * 0.04) for i in range(epochs)]
print(f"Parametrlər: {model_params}")
print(f"Loss trend: {losses}")
# Dictionary-dən məlumat çəkmək:
lr = model_params["learning_rate"]
print(f"Learning rate: {lr}")
🔄 Gün 5-7: Dövr və Şərti Operatorlar
Sİ alqoritmləri for dövrləri ilə epoch-ları, if/else ilə qərar vermə məntiqini işlədir. Data təmizləməkdə, model təlimində bu strukturlar hər yerdədir.
for epoch in range(1, 6):
loss = 0.5 / epoch # Hər epoch-da loss azalır
accuracy = 0.6 + (epoch * 0.08)
# Şərti yoxlama:
if accuracy > 0.85:
print(f"Epoch {epoch}: ✅ Hədəfə çatıldı! (Accuracy: {accuracy:.2f})")
elif accuracy > 0.75:
print(f"Epoch {epoch}: ⚠️ Yaxşılaşır... (Accuracy: {accuracy:.2f})")
else:
print(f"Epoch {epoch}: ⏳ Təlim davam edir... (Accuracy: {accuracy:.2f})")
# Break və Continue:
for i in range(100):
if i == 50:
print("Early stopping!")
break # Dövrü dayandır (early stopping)
İkinci həftə kodunuzu təkrar istifadə edilə bilən hissələrə bölürsünüz. Sİ-də model təlimi, data preprocessing, evaluation kimi funksiyalar dəfələrlə çağırılır. Həmçinin hazır kitabxanalardan (modullardan) istifadə öyrənilir.
⚙️ Gün 8-10: Funksiyalar ilə Kod Təşkili
def açar sözü ilə öz funksiyalarınızı yaradırsınız. Sİ üçün tipik funksiyalar: data normalize etmək, model accuracy hesablamaq, prediction etmək.
def normalize_data(data, min_val=0, max_val=1):
"""Data-nı 0-1 aralığına normalize edir (Min-Max scaling)"""
min_data = min(data)
max_data = max(data)
range_val = max_data - min_data
normalized = [(x - min_data) / range_val for x in data]
return normalized
def calculate_accuracy(predictions, labels):
"""Doğru proqnozların faizini hesablayır"""
correct = sum(1 for p, l in zip(predictions, labels) if p == l)
total = len(predictions)
return (correct / total) * 100
# Funksiyaları test edək:
raw_scores = [45, 67, 89, 23, 91]
normalized = normalize_data(raw_scores)
print(f"Normalized: {[round(x, 2) for x in normalized]}")
preds = [1, 0, 1, 1, 0]
actuals = [1, 0, 1, 0, 0]
acc = calculate_accuracy(preds, actuals)
print(f"Accuracy: {acc}%") # 80.0%
📦 Gün 11-14: Modullar və İmportlar
Python-un gücü hazır kitabxanalardadir. random (təsadüfi ədədlər), math (riyazi funksiyalar), datetime (vaxt işləri) Sİ üçün tez-tez istifadə olunur.
import random
import math
from datetime import datetime
# Təsadüfi data generasiyası (synthetic data):
def generate_dataset(n_samples=100):
"""Təlim üçün sintetik dataset yaradır"""
data = []
for _ in range(n_samples):
x = random.uniform(0, 10)
noise = random.gauss(0, 0.5) # Normal paylanma
y = 2 * x + 1 + noise # y = 2x + 1 + noise
data.append((x, y))
return data
# Dataset yaradıb ilk 3 nümunəyə baxaq:
dataset = generate_dataset(5)
for i, (x, y) in enumerate(dataset[:3]):
print(f"Sample {i+1}: x={x:.2f}, y={y:.2f}")
# Riyazi funksiyalar:
values = [2, 4, 8, 16]
log_values = [math.log2(v) for v in values] # [1.0, 2.0, 3.0, 4.0]
print(f"Log2 values: {log_values}")
Üçüncü həftə Python-un Sİ üçün ən vacib kitabxanası — NumPy-yə girişdir. Pandas və Scikit-learn da NumPy üzərində qurulub. List-lərdən fərqli olaraq NumPy array-ləri sürətlidir və matris əməliyyatlarına imkan verir.
🔢 Gün 15-17: NumPy Array-ləri
Sİ-də hər şey matris və tensor kimi təmsil olunur. Şəkil — piksel matrisi, mətn — embedding vektoru, dataset — feature matrisi. NumPy bunların əsasıdır.
import numpy as np
# 1D array (vektor) — məsələn, bir şəklin pikselləri:
image_vector = np.array([255, 128, 0, 255, 255, 255])
print(f"Shape: {image_vector.shape}") # (6,)
print(f"Mean: {np.mean(image_vector)}") # Ortalama
# 2D array (matris) — dataset:
# Hər sətir bir nümunə: [boy, çəki, yaş]
dataset = np.array([
[175, 70, 25],
[160, 55, 30],
[180, 85, 35],
[165, 60, 28]
])
print(f"Dataset shape: {dataset.shape}") # (4, 3) — 4 nümunə, 3 feature
print(f"Boy ortalama: {np.mean(dataset[:, 0])}") # 0-ci sütun (boy)
# Sıfırlar və birdən array-lər (initialization):
zeros = np.zeros((3, 3)) # 3x3 sıfır matris
ones = np.ones((2, 4)) # 2x4 bir matris
random_arr = np.random.rand(3, 3) # 3x3 təsadüfi (0-1 arası)
🧮 Gün 18-21: Matris Əməliyyatları
Sİ-nin riyazi əsası xətti cəbrdir (linear algebra). NumPy ilə matris vurma, transpose, inverse kimi əməliyyatlar asanlaşır. Neural network-lər əsasən matris vurmalarından ibarətdir.
# İki matris yaradaq:
A = np.array([[1, 2], [3, 4], [5, 6]]) # 3x2
B = np.array([[7, 8, 9], [10, 11, 12]]) # 2x3
# Matris vurma (dot product) — Sİ-nin ən fundamental əməliyyatı:
C = np.dot(A, B) # və ya A @ B
print(f"A @ B shape: {C.shape}") # (3, 3)
print(C)
# Element-wise əməliyyatlar:
D = np.array([[1, 2], [3, 4]])
print(D * 2) # Hər elementi 2-yə vurur
print(D ** 2) # Hər elementin kvadratı
print(np.exp(D)) # Exponential (activation funksiyaları üçün)
# Transpose və reshape:
E = D.T # Transpose (sətir ↔ sütun)
F = D.reshape(4, 1) # 4x1 sütun vektoru
# Broadcastinq — Sİ-də çox istifadə olunur:
features = np.array([[1, 2, 3], [4, 5, 6]])
means = np.array([0.5, 1.0, 1.5])
normalized = features - means # Hər sətirdən means çıxır
Dördüncü həftə real world data ilə işləyirsiniz. Pandas, Python-un Excel + SQL birləşməsidir. Sİ layihələrinin 80% vaxtı data təmizləməyə (data preprocessing) gedir və Pandas bunun əsas alətidir.
📊 Gün 22-24: DataFrame ilə Tanışlıq
DataFrame — Pandas-ın əsas strukturu. Excel cədvəlinə oxşayır: sətirlər (samples) və sütunlar (features). Hər Sİ dataset-i DataFrame kimi işlənir.
import numpy as np
# Sİ dataset-i yaradaq:
data = {
'ad': ['Ali', 'Ayşe', 'Mehmet', 'Fatma', 'Can'],
'yaş': [25, 30, 35, 28, 22],
'maas': [5000, 7000, 9000, 6000, 4500],
'şehir': ['Bakı', 'İstanbul', 'Ankara', 'Bakı', 'İzmir'],
'satın_aldı': [1, 0, 1, 1, 0] # Target: 1=aldı, 0=almadı
}
df = pd.DataFrame(data)
print(df.head(3)) # İlk 3 sətir
print(f"\nShape: {df.shape}") # (5, 5) — 5 nümunə, 5 sütun
print(f"\nInfo:")
df.info()
# Statistik xülasə:
print(df.describe()) # Rəqəmsal sütunlar üçün ortalama, std, min, max
🔍 Gün 25-28: Data Təmizləmə və Seçmə
Real data çirklidir: boş dəyərlər (NaN), təkrarlar, outlier-lər var. Pandas ilə data cleaning və feature selection əsas Sİ hazırlığıdır.
# 1. Boş dəyərləri yoxlamaq:
print(df.isnull().sum()) # Hər sütundakı NaN sayı
# 2. Şərti seçmə (filtering):
yuksek_maas = df[df['maas'] > 6000]
baki_liler = df[df['şehir'] == 'Bakı']
print(f"Yüksək maaşlılar:\n{yuksek_maas}")
# 3. Qrup ilə əməliyyatlar:
sehir_ortalama = df.groupby('şehir')['maas'].mean()
print(f"\nŞehir ortalama maaşları:\n{sehir_ortalama}")
# 4. Yeni sütun yaratmaq (feature engineering):
df['maas_kategori'] = pd.cut(df['maas'],
bins=[0, 5000, 8000, 10000],
labels=['Düşük', 'Orta', 'Yüksek'])
# 5. CSV faylından oxumaq/yazmaq:
# df = pd.read_csv('dataset.csv')
# df.to_csv('temizlenmis_data.csv', index=False)
Son iki gün öyrəndiklərinizi birləşdirib Scikit-learn ilə ilk Sİ modelinizi qurursunuz. Bu, "toy example"dir — real problem yox, ancaq bütün komponentləri göstərir: data loading, preprocessing, model training, evaluation.
🤖 Sadə Klassifikasiya Modeli
Scikit-learn — Sİ öyrənmənin ən populyar kitabxanası. Aşağıdakı kod bütün prosesi göstərir: data hazırlama, model seçmə (Logistic Regression), təlim, qiymətləndirmə.
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
from sklearn.preprocessing import StandardScaler
# 1. Dataset yaradaq (sintetik):
np.random.seed(42)
n = 200
# Feature-lər: yaş və maaş
X = np.random.randn(n, 2)
X[:, 0] = X[:, 0] * 10 + 30 # Yaş: ortalama 30, std 10
X[:, 1] = X[:, 1] * 2000 + 6000 # Maaş
# Target: əgər maaş > 7000 və yaş < 35 isə 1 (aldı), əks halda 0
y = ((X[:, 1] > 7000) & (X[:, 0] < 35)).astype(int)
# 2. Train-test split (80% təlim, 20% test):
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42)
# 3. Feature scaling (normalizasiya):
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 4. Model yarat və təlim et:
model = LogisticRegression()
model.fit(X_train_scaled, y_train)
# 5. Proqnoz və qiymətləndirmə:
y_pred = model.predict(X_test_scaled)
accuracy = accuracy_score(y_test, y_pred)
print(f"Model dəqiqliyi: {accuracy:.2%}")
print("\nDetallı hesabat:")
print(classification_report(y_test, y_pred))
# 6. Yeni nümunə ilə test:
yeni_musteri = np.array([[28, 8000]]) # 28 yaş, 8000 maaş
yeni_scaled = scaler.transform(yeni_musteri)
proqnoz = model.predict(yeni_scaled)[0]
print(f"\nYeni müştəri alış edəcəkmi? {'Bəli' if proqnoz == 1 else 'Xeyr'}")
📚 Sonraki Addımlar: Hardaya Getmək?
✅ 1-2 ay: Scikit-learn ilə digər alqoritmlər (Random Forest, SVM, K-Means)
✅ 2-3 ay: Deep Learning — TensorFlow və ya PyTorch ilə neural network-lər
✅ 3-4 ay: Real layihələr (Kaggle müsabiqələri, portfolio)
✅ 4-6 ay: Specialization (Computer Vision, NLP, Reinforcement Learning)
🎯 Resurslar:
• Kaggle Learn (pulsuz, praktiki)
• fast.ai (pragmatik deep learning)
• Coursera: Andrew Ng Machine Learning kursu
• YouTube: Sentdex, CodeEmporium (Python + Sİ)
Python öyrənməyə hansı proqram ilə başlamalıyam?
Sİ üçün Anaconda + Jupyter Notebook tövsiyə olunur. Jupyter kod və izahatı bir yerdə saxlamağa imkan verir. Alternativ: Google Colab (pulsuz, bulud əsaslı, GPU dəstəyi var).
Gündə neçə saat ayırmalıyam?
Minimum 1 saat, ideal 2 saat. Əsas ardıcıllıqdır — hər gün 1 saat, həftədə bir dəfə 5 saatdan daha effektivdir. 30 gün ardıcıl praktika vacibdir.
Riyaziyyat bilməsəm, Sİ öyrənə bilərəmmi?
Bu 30 günlük mərhələdə əlavə riyaziyyat tələb olunmur. Amma irəlilədikcə (xüsusilə deep learning) xətti cəbr, statistika və calculus lazım olacaq. Bunlar paralel öyrənilə bilər.
30 gündən sonra iş tapa bilərəmmi?
30 gün yalnız başlanğıcdır. İş tapmaq üçün real layihələr (portfolio), Kaggle müsabiqələri və əlavə 3-6 ay ixtisaslaşma tələb olunur. Amma bu 30 gün sizi digər 90% namizəddən fərqləndirəcək.
Kodları harada yoxlaya bilərəm?
Google Colab (colab.research.google.com) — pulsuz, brauzerdə işləyir. Və ya kompüterinizə Anaconda quraşdırıb Jupyter Notebook istifadə edin. Hər iki halda kodları köçürüb birbaşa işlədə bilərsiniz.
