PYTHON
NumPy ile Sayısal Hesaplamalar: Veri Biliminin Temeli
📅 19.08.2025
⏱️ 10 dk okuma
👤 AI Python Eğitimi
🔢 NumPy Nedir?
NumPy (Numerical Python), Python'da bilimsel hesaplamalar için en temel kütüphanedir. Çok boyutlu diziler ve bu diziler üzerinde hızlı işlemler yapmanızı sağlar.
NumPy'nin Avantajları:
- Hız: C dilinde yazılmış, son derece hızlı
- Bellek Verimliliği: Python listelerinden çok daha az bellek kullanır
- Vektörize İşlemler: Döngü yazmadan toplu işlemler
- Broadcasting: Farklı boyutlardaki dizilerde işlem
📦 NumPy Kurulumu
NumPy'yi pip ile kolayca kurabilirsiniz:
pip install numpy
🚀 Temel NumPy Kullanımı
Dizi Oluşturma
NumPy dizileri (array) oluşturmanın farklı yolları:
import numpy as np
# Liste'den dizi oluşturma
arr1 = np.array([1, 2, 3, 4, 5])
# Çok boyutlu dizi
matrix = np.array([[1, 2, 3], [4, 5, 6]])
# Sıfırlarla dolu dizi
zeros = np.zeros((3, 4)) # 3x4 boyutunda
# Birlerle dolu dizi
ones = np.ones((2, 3))
# Belirli aralıkta sayılar
range_arr = np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
# Eşit aralıklı sayılar
linspace_arr = np.linspace(0, 1, 5) # 0'dan 1'e 5 eşit parça
Dizi Özellikleri
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(f"Shape: {arr.shape}") # (2, 3)
print(f"Size: {arr.size}") # 6
print(f"Ndim: {arr.ndim}") # 2
print(f"Dtype: {arr.dtype}") # int64
🧮 Matematiksel İşlemler
Temel İstatistikler
data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(f"Ortalama: {np.mean(data)}") # 5.5
print(f"Medyan: {np.median(data)}") # 5.5
print(f"Standart Sapma: {np.std(data)}") # 2.87
print(f"Varyans: {np.var(data)}") # 8.25
print(f"Minimum: {np.min(data)}") # 1
print(f"Maksimum: {np.max(data)}") # 10
Matematiksel Fonksiyonlar
arr = np.array([1, 4, 9, 16, 25])
# Karekök
sqrt_arr = np.sqrt(arr)
# Logaritma
log_arr = np.log(arr)
# Trigonometrik fonksiyonlar
angles = np.array([0, 30, 45, 60, 90]) * np.pi / 180
sin_values = np.sin(angles)
cos_values = np.cos(angles)
🎲 Rastgele Sayılar
# Rastgele sayı üreteci ayarlama
np.random.seed(42)
# 0-1 arası rastgele sayılar
random_nums = np.random.rand(5)
# Belirli aralıkta rastgele tamsayılar
random_ints = np.random.randint(1, 100, size=10)
# Normal dağılım
normal = np.random.normal(0, 1, 1000) # ortalama=0, std=1
🔧 Dizi Manipülasyonu
Reshaping (Yeniden Şekillendirme)
arr = np.arange(12)
reshaped = arr.reshape(3, 4) # 3x4 matris
# Düzleştirme
flattened = reshaped.flatten()
# Transpoz
transposed = reshaped.T
Dizileri Birleştirme
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# Yatay birleştirme
horizontal = np.hstack([arr1, arr2])
# Dikey birleştirme
vertical = np.vstack([arr1, arr2])
# Genel birleştirme
concatenated = np.concatenate([arr1, arr2])
📊 Pratik Örnek: Veri Analizi
# Öğrenci notları örneği
notlar = np.array([85, 92, 78, 96, 88, 91, 84, 89, 93, 87])
print(f"Toplam öğrenci: {len(notlar)}")
print(f"Ortalama not: {np.mean(notlar):.2f}")
print(f"Medyan not: {np.median(notlar):.2f}")
print(f"Standart sapma: {np.std(notlar):.2f}")
print(f"En yüksek not: {np.max(notlar)}")
print(f"En düşük not: {np.min(notlar)}")
# 90'dan yüksek notlar
yuksek_notlar = notlar[notlar >= 90]
print(f"90+ not alan öğrenci sayısı: {len(yuksek_notlar)}")
⚡ Performans İpuçları
- Vektörize İşlemler: Döngü yerine NumPy fonksiyonları kullanın
- Broadcasting: Farklı boyutlu dizilerle doğrudan işlem yapın
- In-place İşlemler: Bellek tasarrufu için mümkün olduğunda kullanın
- Doğru Veri Tipi: İhtiyacınıza uygun dtype seçin
🎯 Sonuç
NumPy, veri bilimi ve makine öğrenmesi projelerinin temel taşıdır. Bu rehberde öğrendiklerinizle artık NumPy ile etkili sayısal hesaplamalar yapabilirsiniz. Pandas, Matplotlib ve Scikit-learn gibi diğer kütüphaneler de NumPy temeli üzerine inşa edilmiştir.
Etiketler:
numpy veri-bilimi python matematik