NumPy, Python’da bilimsel hesaplamalar için kullanılan temel bir kütüphanedir. NumPy, çok boyutlu diziler (arrays) ve matrislerle çalışmayı sağlar, ayrıca matematiksel fonksiyonlar, lineer cebir, Fourier dönüşümleri ve rastgele sayı oluşturma gibi işlemler için de çeşitli araçlar sunar. NumPy, veri bilimi, makine öğrenimi, mühendislik ve matematik gibi birçok alanda yaygın olarak kullanılır.
1. NumPy Dizileri (NumPy Arrays)
NumPy dizileri, homojen veri türlerine sahip çok boyutlu dizilerdir. Diziler, Python listelerine benzer ancak daha verimlidir ve bilimsel hesaplamalar için optimize edilmiştir.
a. NumPy Dizisi Oluşturma
NumPy dizileri, np.array()
fonksiyonu kullanılarak oluşturulabilir.
Örnek:
import numpy as np
# 1-boyutlu NumPy dizisi (vektör)
vektor = np.array([1, 2, 3, 4, 5])
print("Vektör:", vektor)
# 2-boyutlu NumPy dizisi (matris)
matris = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Matris:\n", matris)
b. NumPy Dizilerinin Özellikleri
NumPy dizileri çeşitli özelliklere sahiptir:
ndim
: Dizinin boyut sayısını verir.shape
: Dizinin boyutlarını (satır ve sütun sayısı) verir.size
: Dizideki toplam eleman sayısını verir.dtype
: Dizinin veri türünü belirtir.
Örnek:
print("Boyut Sayısı (ndim):", matris.ndim)
print("Boyutlar (shape):", matris.shape)
print("Toplam Eleman Sayısı (size):", matris.size)
print("Veri Türü (dtype):", matris.dtype)
2. NumPy’da Dizi İşlemleri
NumPy dizileri üzerinde çeşitli matematiksel işlemler ve dönüşümler yapılabilir.
a. Dizi Elemanlarına Erişim ve İndeksleme
NumPy dizilerinde, elemanlara erişmek için indeksleme kullanılır. İndeksler sıfırdan başlar.
Örnek:
print("Matrisin [0, 1] İndeksi:", matris[0, 1]) # 0. satır, 1. sütun
print("İkinci Satır:", matris[1, :]) # 1. satır
print("Üçüncü Sütun:", matris[:, 2]) # 2. sütun
b. Dizi Dilimleme (Slicing)
NumPy dizileri, dilimleme (slicing) ile alt dizilere ayrılabilir.
Örnek:
# İlk iki satırı seçme
print("İlk İki Satır:\n", matris[:2, :])
# Sağ alt 2x2 alt matris
print("Sağ Alt Matris:\n", matris[1:, 1:])
c. NumPy Dizileri ile Matematiksel İşlemler
NumPy, diziler üzerinde temel aritmetik işlemleri kolayca yapmayı sağlar. Bu işlemler eleman bazında yapılır.
Örnek:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# Toplama
print("Toplama:", a + b)
# Çıkarma
print("Çıkarma:", a - b)
# Çarpma
print("Çarpma:", a * b)
# Bölme
print("Bölme:", a / b)
# Üs alma
print("Üs Alma:", a ** 2)
d. NumPy Matematiksel Fonksiyonlar
NumPy, birçok matematiksel fonksiyon sunar. Örneğin, trigonometrik fonksiyonlar, üs ve logaritma fonksiyonları, istatistiksel fonksiyonlar gibi.
Örnek:
# Sinüs hesaplama
print("Sinüs:", np.sin(a))
# Doğal logaritma
print("Doğal Logaritma:", np.log(a))
# Ortalama ve standart sapma
print("Ortalama:", np.mean(a))
print("Standart Sapma:", np.std(a))
3. NumPy ile İleri Düzey İşlemler
NumPy, daha ileri düzey işlemler için de birçok araç sunar.
a. Çok Boyutlu Diziler ve Matris İşlemleri
NumPy, çok boyutlu diziler üzerinde matris işlemleri yapmayı sağlar. Bu, lineer cebir, matris çarpımı gibi işlemler için kullanılır.
Örnek:
# 3x3 birim matris oluşturma
birim_matris = np.eye(3)
print("Birim Matris:\n", birim_matris)
# Matris çarpımı
matris_carpim = np.dot(matris, birim_matris)
print("Matris Çarpımı:\n", matris_carpim)
b. Dizilerin Yeniden Şekillendirilmesi (Reshaping)
NumPy dizileri, yeniden şekillendirilebilir (reshape
). Bu, dizinin boyutlarını değiştirmeyi sağlar.
Örnek:
# 1x9 matrisini 3x3'e dönüştürme
yeniden_sekillendirme = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]).reshape(3, 3)
print("Yeniden Şekillendirilmiş Matris:\n", yeniden_sekillendirme)
c. Dizi Birleştirme ve Ayırma
NumPy, dizileri birleştirmek veya ayırmak için de fonksiyonlar sunar.
Örnek:
# Dizi birleştirme
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
birlesmis_dizi = np.concatenate((a, b), axis=0)
print("Birleştirilmiş Dizi:\n", birlesmis_dizi)
# Dizi ayırma
ayrilmis_dizi = np.split(matris, 3, axis=0)
print("Ayrılmış Dizi:", ayrilmis_dizi)
d. Rastgele Sayılar Üretme
NumPy, rastgele sayı üretmek için çeşitli fonksiyonlar sunar. Bu fonksiyonlar, bilimsel simülasyonlar ve makine öğrenimi uygulamaları için yaygın olarak kullanılır.
Örnek:
# 0 ile 1 arasında rastgele sayılar
rastgele_sayilar = np.random.rand(3, 3)
print("Rastgele Sayılar:\n", rastgele_sayilar)
# Normal dağılıma uygun rastgele sayılar
normal_dagilim = np.random.randn(3, 3)
print("Normal Dağılım:\n", normal_dagilim)
# Belirli bir aralıkta rastgele tamsayılar
rastgele_tamsayilar = np.random.randint(1, 10, size=(3, 3))
print("Rastgele Tamsayılar:\n", rastgele_tamsayilar)
4. NumPy’nin Avantajları
- Hız ve Verimlilik: NumPy, düşük seviye C ve Fortran ile yazılmıştır, bu nedenle Python listelerinden çok daha hızlıdır. Büyük veri kümeleri üzerinde hızlı işlemler yapmak için optimize edilmiştir.
- Bellek Yönetimi: NumPy, homojen veri tipleri ve sabit boyutlu bloklar kullanarak bellek kullanımını optimize eder.
- Kapsamlı Fonksiyon Seti: NumPy, geniş bir yelpazede bilimsel ve matematiksel fonksiyonlar sunar, bu da veri analizi ve mühendislik uygulamaları için çok yönlü bir araç haline getirir.
- Entegrasyon: NumPy, Pandas, Scikit-Learn, TensorFlow gibi diğer bilimsel ve makine öğrenimi kütüphaneleri ile sorunsuz bir şekilde entegre olur.
NumPy, Python‘da bilimsel hesaplamalar için temel bir araçtır. Çok boyutlu diziler ve matrislerle çalışmak, matematiksel işlemler yapmak ve veri manipülasyonu için güçlü fonksiyonlar sunar. NumPy, veri bilimi, mühendislik, makine öğrenimi ve diğer birçok bilimsel alanda yaygın olarak kullanılır. Python’da bilimsel hesaplama yapmak isteyenler için NumPy kütüphanesini öğrenmek, güçlü ve verimli uygulamalar geliştirmek için önemli bir adımdır.
Bir yanıt yazın