NumPy, Python’da bilimsel hesaplama ve veri işleme için kullanılan güçlü bir kütüphanedir. NumPy, çok boyutlu dizileri ve matrisleri desteklerken, bu diziler üzerinde çalışmak için yüksek düzeyde işlevsellik sağlar. Ayrıca, bu diziler üzerinde hızlı matematiksel işlemler yapabilen ve rastgele sayı üretebilen fonksiyonlar da içerir.
NumPy, bilimsel ve mühendislik hesaplamaları yapmak için sıklıkla kullanılır. Özellikle, veri analizi, makine öğrenmesi, yapay zeka gibi alanlarda çok yaygın olarak kullanılır.
NumPy’nin temel özellikleri ve kullanım alanları:
- Çok Boyutlu Diziler (Arrays): NumPy, tek boyutlu ve çok boyutlu dizileri destekler. Bu diziler, aynı türden verileri içerebilir ve matris gibi çok boyutlu veri yapılarını temsil etmek için kullanılabilir.
- Veri İşleme ve Diziler Üzerinde İşlem: NumPy, diziler üzerinde vektörel ve matris işlemleri gerçekleştirebilir. Bu, işlemleri basitleştirir ve optimize eder.
- Rastgele Sayı Üretimi: NumPy, rastgele sayı üretme işlevleri sağlar. Bu, simülasyonlar ve istatistiksel analizler için faydalıdır.
- Lineer Cebir İşlemleri: NumPy, lineer cebir işlemleri yapmak için işlevler sağlar. Bu, matris çarpımı, ters matris bulma, determinant hesaplama gibi işlemleri içerir.
- Broadcasting: NumPy, farklı şekillerdeki diziler arasında işlem yapmayı kolaylaştıran yayınlanma (broadcasting) özelliğine sahiptir.
NumPy’nin temel veri yapısı numpy.ndarray
‘dir ve bu veri yapısı üzerinde birçok işlem ve işlev mevcuttur. Örneğin, aşağıdaki gibi NumPy’ı kullanarak bir dizi oluşturabilirsiniz:
import numpy as np # 1 boyutlu dizi oluşturma arr1d = np.array([1, 2, 3, 4, 5]) # 2 boyutlu dizi oluşturma arr2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Sıfırlardan oluşan bir dizi oluşturma zeros_arr = np.zeros((3, 3)) # 3x3 boyutunda sıfırlardan oluşan dizi # Rastgele sayılardan oluşan bir dizi oluşturma random_arr = np.random.rand(2, 2) # 2x2 boyutunda rastgele sayılardan oluşan dizi
Bu sadece NumPy’nin küçük bir örneği. NumPy, daha karmaşık hesaplamaları gerçekleştirmek için daha birçok fonksiyon ve yetenek içerir.
NumPy’nin daha fazla örneği:
- Diziler Üzerinde İşlem Yapma:
import numpy as np # İki diziyi toplama arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) result = arr1 + arr2 # Sonuç: [5, 7, 9] # Dizileri çarpma result = arr1 * arr2 # Sonuç: [4, 10, 18] # İki boyutlu dizilerde işlem yapma arr3 = np.array([[1, 2], [3, 4]]) arr4 = np.array([[5, 6], [7, 8]]) result = arr3 + arr4 # Sonuç: [[6, 8], [10, 12]]
- Rastgele Sayı Üretme:
import numpy as np # Belirli bir aralıkta rastgele tam sayı üretme random_int = np.random.randint(1, 10) # 1 ile 10 arasında rastgele bir tam sayı # Belirli bir aralıkta rastgele ondalıklı sayı üretme random_float = np.random.uniform(0, 1) # 0 ile 1 arasında rastgele bir ondalıklı sayı
- Lineer Cebir İşlemleri:
import numpy as np # Matris çarpımı mat1 = np.array([[1, 2], [3, 4]]) mat2 = np.array([[5, 6], [7, 8]]) result = np.dot(mat1, mat2) # Sonuç: [[19, 22], [43, 50]] # Matris determinantı det = np.linalg.det(mat1) # Sonuç: -2.0 # Matrisin tersini alma inv_mat = np.linalg.inv(mat1)
- Dizileri İşleme ve Filtreleme:
import numpy as np # Dizi elemanlarını filtreleme arr = np.array([1, 2, 3, 4, 5]) filtered_arr = arr[arr > 2] # 2'den büyük elemanları filtreleme # Dizi elemanlarını değiştirme arr[arr % 2 == 0] = -1 # Çift sayıları -1 ile değiştirme
- Dizileri Düzleştirme ve Yeniden Şekillendirme:
import numpy as np # Diziyi düzleştirme arr = np.array([[1, 2, 3], [4, 5, 6]]) flattened_arr = arr.flatten() # [1, 2, 3, 4, 5, 6] # Yeniden şekillendirme reshaped_arr = arr.reshape(3, 2) # [[1, 2], [3, 4], [5, 6]]
- İstatistiksel İşlemler:
import numpy as np # Dizinin toplamı arr = np.array([1, 2, 3, 4, 5]) total = np.sum(arr) # Toplam: 15 # Dizinin ortalaması mean = np.mean(arr) # Ortalama: 3.0 # Dizinin standart sapması std_dev = np.std(arr) # Standart Sapma: 1.4142135623730951
- Dizileri Birleştirme:
import numpy as np # Dizileri birleştirme arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) concatenated_arr = np.concatenate((arr1, arr2)) # [1, 2, 3, 4, 5, 6] # İki boyutlu dizileri birleştirme arr3 = np.array([[7, 8, 9]]) concatenated_arr_2d = np.concatenate((arr1.reshape(1, -1), arr3), axis=0) # [[1, 2, 3], [7, 8, 9]]
- Dizileri Sıralama:
import numpy as np # Diziyi sıralama arr = np.array([3, 1, 4, 2, 5]) sorted_arr = np.sort(arr) # [1, 2, 3, 4, 5] # Diziyi tersten sıralama reverse_sorted_arr = np.sort(arr)[::-1] # [5, 4, 3, 2, 1]
- Diziler Arası Uzaklık Hesaplama:
import numpy as np # İki nokta arasındaki Euclidean uzaklığını hesaplama point1 = np.array([1, 2, 3]) point2 = np.array([4, 5, 6]) distance = np.linalg.norm(point1 - point2) # Sonuç: 5.196152422706632
- Dizilerdeki Maksimum ve Minimum Değerleri Bulma:
import numpy as np # Dizideki maksimum ve minimum değerleri bulma arr = np.array([3, 1, 4, 2, 5]) max_value = np.max(arr) # Maksimum değer: 5 min_value = np.min(arr) # Minimum değer: 1
- Dizilerdeki Elemanların İndeksini Bulma:
import numpy as np # Belirli bir değeri içeren elemanın indeksini bulma arr = np.array([3, 1, 4, 2, 5]) index = np.where(arr == 4) # 4 değerine sahip elemanın indeksi: (array([2]),)
- Dizileri Döndürme ve Kaydırma:
import numpy as np # Diziyi belirli bir sayıda adım sağa kaydırma arr = np.array([1, 2, 3, 4, 5]) shifted_arr = np.roll(arr, 2) # Sonuç: [4, 5, 1, 2, 3]
- Dizileri Bir Filtre Kullanarak Düzenleme:
import numpy as np # Dizideki belirli bir koşulu sağlayan elemanları değiştirme arr = np.array([1, 2, 3, 4, 5]) arr[arr % 2 == 0] *= -1 # Çift sayıları negatif yapma
Bu örnekler, NumPy’nin daha yaygın kullanılan işlevlerini içeriyor. Ancak, NumPy’nin çok daha geniş bir fonksiyon yelpazesi bulunmaktadır. İhtiyacınız olan özelliklere ve işlemlere göre, NumPy belgelendirmesine başvurmanız faydalı olacaktır.