📊 NumPy
NumPy (Numerical Python), bilimsel hesaplamalar için Python’un temel kütüphanesidir.
Temel Kullanım Alanları:
- Çok boyutlu diziler ve matrislerle çalışma
- Matematiksel ve mantıksal işlemler
- Lineer cebir işlemleri (matris çarpımı, determinant, vb.)
- Rastgele sayı üretimi ve istatistiksel fonksiyonlar
- FFT (Hızlı Fourier Dönüşümü) gibi sinyal işleme operasyonları
Neden NumPy?
- Hız: C dilinde yazılmış arka uç sayesinde Python listelerinden çok daha hızlı
- Bellek verimliliği: Homojen diziler için optimize edilmiş bellek kullanımı
- Vektörizasyon: For döngüleri yerine tüm diziye tek seferde işlem uygulama
import numpy as np
# Matris oluşturma
arr = np.array([[1, 2, 3], [4, 5, 6]])
# İstatistiksel işlemler
print(np.mean(arr)) # Ortalama
print(np.std(arr)) # Standart sapma
# Lineer cebir
print(np.linalg.det(np.array([[1, 2], [3, 4]]))) # Determinant
🐼 Pandas
Pandas, veri manipülasyonu ve analizi için tasarlanmış yüksek seviyeli bir kütüphanedir.
Temel Kullanım Alanları:
- Veri okuma ve yazma (CSV, Excel, SQL, JSON, vb.)
- Veri temizleme ve ön işleme
- Veri dönüştürme ve birleştirme
- Eksik veri işleme
- Zaman serisi analizi
- Gruplama ve pivot tabloları
Neden Pandas?
- DataFrame ve Series veri yapıları veri işlemeyi kolaylaştırır
- SQL benzeri işlemler ve filtreleme özellikleri
- Zaman serisi verileri için optimize edilmiş araçlar
- Excel’e benzeyen ancak daha güçlü veri manipülasyonu
import pandas as pd
# CSV dosyası okuma
df = pd.read_csv('veriler.csv')
# Temel istatistikler
print(df.describe())
# Filtreleme
filtrelenmis_df = df[df['yas'] > 30]
# Gruplama ve toplama
grup_sonuc = df.groupby('kategori')['deger'].sum()
📈 Matplotlib
Matplotlib, Python’da çok çeşitli grafik türleri oluşturmak için kullanılan temel görselleştirme kütüphanesidir.
Temel Kullanım Alanları:
- Çizgi grafikler, bar grafikleri, histogram, scatter plot
- Alt grafik oluşturma (subplots)
- 3D grafikler
- Kontur ve yüzey grafikleri
- Bilimsel yayın kalitesinde görselleştirmeler
- Görselleştirme özelleştirme (eksen, ölçekler, renkler)
Neden Matplotlib?
- MATLAB benzeri sözdizimi ile kolay kullanım
- Yüksek düzeyde özelleştirilebilirlik
- Her türlü formatta çıktı kaydetme (PNG, PDF, SVG, vb.)
- Bilimsel ortamlarda yaygın kabul
import matplotlib.pyplot as plt
# Basit çizgi grafiği
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.figure(figsize=(10, 6))
plt.plot(x, y, 'ro-', linewidth=2, markersize=10)
plt.title('Örnek Grafik')
plt.xlabel('X Ekseni')
plt.ylabel('Y Ekseni')
plt.grid(True)
plt.show()
🎨 Seaborn
Seaborn, Matplotlib üzerine kurulmuş, daha yüksek seviyeli bir istatistiksel veri görselleştirme kütüphanesidir.
Temel Kullanım Alanları:
- İstatistiksel ilişkileri görselleştirme
- Kategorik veri analizi
- Dağılım görselleştirmeleri
- Korelasyon ve ısı haritaları
- Zaman serisi görselleştirmeleri
- Regresyon grafikleri
Neden Seaborn?
- Estetik açıdan varsayılan olarak güzel grafikler
- İstatistiksel modelleri kolayca görselleştirme
- Pandas DataFrame’leri ile entegre çalışma
- Renk paletleri ve temaları ile kolay özelleştirme
import seaborn as sns
# Örnek veri seti
tips = sns.load_dataset('tips')
# İstatistiksel ilişki grafiği
plt.figure(figsize=(10, 6))
sns.lmplot(x='total_bill', y='tip', hue='time', data=tips)
plt.title('Bahşiş ve Toplam Hesap İlişkisi')
plt.show()
# Dağılım grafiği
plt.figure(figsize=(10, 6))
sns.histplot(tips['total_bill'], kde=True)
plt.title('Toplam Hesap Dağılımı')
plt.show()
🧠 Scikit-learn
Scikit-learn, makine öğrenmesi için kullanılan, kullanımı kolay ve verimli araçlar sağlayan bir kütüphanedir.
Temel Kullanım Alanları:
- Sınıflandırma (karar ağaçları, SVM, KNN, vb.)
- Regresyon (lineer, lojistik, vb.)
- Kümeleme (K-means, DBSCAN, vb.)
- Boyut azaltma (PCA, t-SNE, vb.)
- Model seçimi ve değerlendirme
- Veri ön işleme ve özellik mühendisliği
Neden Scikit-learn?
- Tutarlı ve kullanımı kolay API
- Kapsamlı dokümantasyon ve örnekler
- Çok çeşitli algoritma koleksiyonu
- NumPy ve Pandas ile kolay entegrasyon
- Model değerlendirme ve hiperparametre optimizasyonu araçları
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
# Veri seti bölme
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# Özellik ölçekleme
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Model eğitimi
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train_scaled, y_train)
# Tahmin ve değerlendirme
y_pred = model.predict(X_test_scaled)
print(f"Doğruluk: {accuracy_score(y_test, y_pred)}")
print(classification_report(y_test, y_pred))
🧮 SciPy
SciPy, bilimsel ve teknik hesaplamalar için kullanılan bir Python kütüphanesidir.
Temel Kullanım Alanları:
- İstatistiksel testler ve dağılımlar
- Sinyal işleme
- Optimizasyon ve minimizasyon
- Lineer cebir işlemleri
- İnterpolasyon ve integral alma
- Görüntü işleme
Neden SciPy?
- Kapsamlı matematiksel fonksiyonlar ve algoritmalar
- NumPy ile tam entegrasyon
- Bilimsel problemleri çözmek için özel modüller
- Yüksek performanslı C ve Fortran kodu ile uygulanmış alt yapı
from scipy import stats
from scipy import optimize
from scipy import signal
# İstatistiksel test
t_stat, p_value = stats.ttest_ind(grup1, grup2)
print(f"P-değeri: {p_value}")
# Optimizasyon
def f(x):
return x**2 + 10*np.sin(x)
result = optimize.minimize(f, x0=0)
print(f"Minimum nokta: {result.x}")
# Sinyal filtreleme
filtered = signal.lfilter(b, a, data)
🔮 TensorFlow / Keras
TensorFlow/Keras, derin öğrenme uygulamaları için kullanılan güçlü bir kütüphanedir.
Temel Kullanım Alanları:
- Yapay sinir ağları oluşturma ve eğitme
- Görüntü sınıflandırma ve nesne tanıma (CNN)
- Doğal dil işleme uygulamaları (RNN, LSTM, Transformers)
- Zaman serisi tahmini
- Özelleştirilmiş derin öğrenme mimarileri
- Transfer öğrenme
Neden TensorFlow/Keras?
- Keras yüksek seviye API’si ile kolay kullanım
- TensorFlow’un altta yatan güçlü hesaplama yetenekleri
- GPU ve TPU desteği ile hızlı eğitim
- Production sistemlerine kolay entegrasyon
- TensorBoard ile görselleştirme ve izleme
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Conv2D, MaxPooling2D, Flatten
# Basit bir CNN modeli
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
MaxPooling2D((2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(128, activation='relu'),
Dropout(0.5),
Dense(10, activation='softmax')
])
# Model derleme
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# Eğitim
model.fit(X_train, y_train, epochs=5, validation_data=(X_val, y_val))
🌲 XGBoost / LightGBM
XGBoost ve LightGBM, gradient boosting framework’leridir ve makine öğrenmesi yarışmalarında sıkça kullanılırlar.
Temel Kullanım Alanları:
- Sınıflandırma problemleri
- Regresyon problemleri
- Sıralama ve tavsiye sistemleri
- Yüksek boyutlu veri setleriyle çalışma
- Yapılandırılmış/tablo verisi problemleri
- Büyük veri setleri için hızlı eğitim
Neden XGBoost/LightGBM?
- Yüksek doğruluk ve genelleme performansı
- Regülarizasyon özellikleri ile aşırı öğrenmeyi önleme
- Kategorik değişkenleri doğrudan işleme yeteneği (LightGBM)
- Paralelleştirme ile hızlı eğitim
- Özellik önem sıralaması
import xgboost as xgb
from sklearn.metrics import mean_squared_error
# XGBoost Regresör
xgb_model = xgb.XGBRegressor(
n_estimators=100,
learning_rate=0.1,
max_depth=5
)
# Model eğitimi
xgb_model.fit(X_train, y_train)
# Tahmin
y_pred = xgb_model.predict(X_test)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"RMSE: {rmse}")
# Özellik önem sıralaması
importance = xgb_model.feature_importances_
for i, imp in enumerate(importance):
print(f"Özellik {i}: {imp}")
📊 Plotly
Plotly, etkileşimli veri görselleştirmeleri oluşturmak için kullanılan modern bir kütüphanedir.
Temel Kullanım Alanları:
- Etkileşimli grafikler oluşturma
- Karmaşık veri görselleştirmeleri
- Dash ile web uygulamaları geliştirme
- 3D görselleştirmeler
- Coğrafi haritalar ve ısı haritaları
- Finans grafikleri
Neden Plotly?
- Kullanıcı etkileşimli grafikler (yakınlaştırma, fare üzerinde bilgi gösterme)
- Web tarayıcılarında çalışabilen grafikler
- Jupyter Notebook entegrasyonu
- Grafikleri HTML olarak dışa aktarma ve paylaşma
- Geniş grafik türü desteği
import plotly.express as px
import plotly.graph_objects as go
# Express ile hızlı grafik
fig = px.scatter(df, x='x_degeri', y='y_degeri',
color='kategori', size='buyukluk',
hover_data=['ek_bilgi'])
fig.show()
# Özel grafik nesneleri
fig = go.Figure()
fig.add_trace(go.Scatter(x=x_data, y=y_data, mode='lines+markers'))
fig.update_layout(title='Etkileşimli Grafik',
xaxis_title='X Ekseni',
yaxis_title='Y Ekseni')
fig.show()
⏱️ Dask
Dask, büyük veri işleme için paralel hesaplama sağlayan bir kütüphanedir.
Temel Kullanım Alanları:
- Bellek sınırlarını aşan büyük veri setleriyle çalışma
- Çok çekirdekli CPU kullanarak paralel işlemler
- NumPy ve Pandas API’lerinin büyük verilere uygulanması
- Dağıtık hesaplama
- Veri işlem pipeline’larını koordine etme
- Gerçek zamanlı veri analizi
Neden Dask?
- Tanıdık API’ler (NumPy ve Pandas benzeri)
- Bellek sınırlarını aşan veri setleriyle çalışabilme
- Dinamik görev zamanlama
- Veri analiz iş akışlarını ölçeklendirme
- Mevcut Python ekosistemi ile entegrasyon
import dask.dataframe as dd
# Büyük CSV dosyasını yükleme
dask_df = dd.read_csv('cok_buyuk_veri.csv')
# Paralel işlem
sonuc = dask_df.groupby('kategori').agg({'deger': ['mean', 'sum']})
# Hesaplamayı başlatma
sonuc_df = sonuc.compute()
🧩 NetworkX
NetworkX, ağ ve grafik analizi için kullanılan bir kütüphanedir.
Temel Kullanım Alanları:
- Sosyal ağ analizi
- Karmaşık ağ yapılarının incelenmesi
- Yol bulma algoritmaları
- Ağ ölçümü ve analizi
- Graf teorisi algoritmaları
- Ağ görselleştirme
Neden NetworkX?
- Geniş graf algoritmaları koleksiyonu
- Ağ yapılarını oluşturma, manipüle etme ve analiz etme
- Standart ve özel veri formatlarını destekleme
- Diğer bilimsel Python araçlarıyla entegrasyon
- Görselleştirme yetenekleri
import networkx as nx
import matplotlib.pyplot as plt
# Grafik oluşturma
G = nx.Graph()
G.add_edges_from([(1, 2), (1, 3), (2, 3), (3, 4), (4, 5), (4, 6), (5, 6)])
# Graf özellikleri
print(f"Düğüm sayısı: {G.number_of_nodes()}")
print(f"Kenar sayısı: {G.number_of_edges()}")
print(f"Ortalama kısa yol uzunluğu: {nx.average_shortest_path_length(G)}")
# Görselleştirme
plt.figure(figsize=(8, 6))
nx.draw(G, with_labels=True, node_color='lightblue',
node_size=500, edge_color='gray')
plt.title("Basit Ağ Grafiği")
plt.show()
🔍 NLTK / spaCy
NLTK ve spaCy, doğal dil işleme (NLP) için kullanılan kütüphanelerdir.
Temel Kullanım Alanları:
- Metin ön işleme ve temizleme
- Tokenizasyon ve cümle segmentasyonu
- POS (Part-of-Speech) etiketleme
- Varlık ismi tanıma (NER)
- Metin sınıflandırma
- Duygu analizi
- Sözdizimsel analiz
Neden NLTK/spaCy?
- NLTK: Geniş araç seti ve eğitim materyalleri
- spaCy: Endüstri kullanımı için optimize edilmiş, hızlı performans
- Çeşitli dillerde doğal dil işleme
- İleri NLP görevleri için hazır modeller
- Özel modeller eğitme imkanı
# NLTK örneği
import nltk
nltk.download('punkt')
nltk.download('stopwords')
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
text = "Python ile doğal dil işleme örnekleri yapıyoruz."
tokens = word_tokenize(text)
stop_words = set(stopwords.words('turkish'))
filtered_tokens = [w for w in tokens if w.lower() not in stop_words]
print(filtered_tokens)
# spaCy örneği
import spacy
nlp = spacy.load("tr_core_news_sm")
doc = nlp("Apple, 1 milyar dolarlık yatırım yapacağını duyurdu.")
for entity in doc.ents:
print(f"{entity.text}: {entity.label_}")
📊 Statsmodels
Statsmodels, istatistiksel modeller, hipotez testleri ve veri analizi için kullanılan bir kütüphanedir.
Temel Kullanım Alanları:
- Regresyon analizi (OLS, GLS, WLS, vb.)
- Zaman serisi analizi ve tahmini (ARIMA, VAR)
- İstatistiksel testler
- Çok değişkenli istatistiksel analiz
- Panel veri analizi
- İstatistiksel model değerlendirme ve teşhis
Neden Statsmodels?
- Akademik ve bilimsel araştırmalarda kullanılan standart istatistiksel metodlar
- Ayrıntılı model sonuçları ve istatistikler
- R benzeri formül sözdizimi desteği
- İstatistiksel modellerin tam kontrolü
- Kapsamlı dokümantasyon ve örnekler
import statsmodels.api as sm
from statsmodels.formula.api import ols
# Lineer regresyon
X = sm.add_constant(X) # Sabit terim ekleme
model = sm.OLS(y, X)
results = model.fit()
print(results.summary())
# Formül API'si ile model
formula = 'y ~ x1 + x2 + x3'
model = ols(formula, data=df).fit()
print(model.summary())
# ARIMA zaman serisi modeli
from statsmodels.tsa.arima.model import ARIMA
model = ARIMA(y, order=(1, 1, 1))
results = model.fit()
forecast = results.forecast(steps=5)
Bu dokümantasyon, veri bilimi projelerinizde kullanabileceğiniz temel Python kütüphanelerinin özelliklerini ve kullanım alanlarını özetlemektedir. Her kütüphane belirli görevler için optimize edilmiş olup, projenizin gereksinimlerine göre en uygun kütüphaneyi seçmek önemlidir.

Bir yanıt yazın
Yorum yapabilmek için oturum açmalısınız.