NumPy, Python’da sayısal hesaplama ve çok boyutlu dizilerle çalışma için kullanılan açık kaynaklı bir kütüphanedir. Özellikle büyük sayı listelerinde, matrislerde ve bilimsel hesaplamalarda Python’un yerleşik listelerine göre daha düzenli ve verimli işlemler yapmanızı sağlar. Temel kullanımda bir NumPy dizisi oluşturur, bu dizi üzerinde toplama, çarpma, filtreleme veya istatistiksel hesaplama yapar ve sonucu doğrudan alırsınız.
NumPy’nin merkezinde
Python listesinde her elemana tek tek işlem uygulamanız gerekirken NumPy, aynı işlemi dizinin tamamına uygulamanıza izin verir. Örneğin bir dizideki tüm sayıları ikiyle çarpmak için döngü yazmak yerine doğrudan çarpma işlemi kullanabilirsiniz. Bu yaklaşıma genellikle vektörleştirilmiş işlem denir.
NumPy; doğrusal cebir, istatistik, veri analizi, makine öğrenmesi, görüntü işleme ve bilimsel modelleme gibi alanlarda sık kullanılır. Ancak tek başına bir grafik aracı, veri tabanı veya makine öğrenmesi kütüphanesi değildir. Bu işler için genellikle Matplotlib, pandas veya başka kütüphanelerle birlikte kullanılır.
NumPy kurulmuş bir Python ortamında aşağıdaki örnek çalıştırıldığında önce bir dizi oluşturulur, ardından dizinin bütün elemanları ikiyle çarpılır:
Beklenen çıktı şöyledir:
Burada
Aynı işlem Python listesinde doğrudan yapılsaydı
NumPy, tablo biçimindeki verilerle de çalışabilir. Aşağıdaki örnekte iki satır ve üç sütundan oluşan bir dizi oluşturulur:
Çıktı:
NumPy’yi ne zaman kullanacağınızı belirlerken verinin yapısı ve yapacağınız işlem önemlidir. Küçük ve farklı türde nesneler içeren basit koleksiyonlarda Python listesi yeterli olabilir. Aynı türden sayısal veriler üzerinde toplu işlem yapılacaksa NumPy daha uygun bir yapı sunar.
Bu fark, NumPy’nin her durumda Python listesinin yerine geçeceği anlamına gelmez. Örneğin metinleri, farklı türde nesneleri veya düzensiz verileri birlikte tutmanız gerekiyorsa liste daha anlaşılır olabilir. NumPy’nin asıl gücü, düzenli ve sayısal verileri toplu biçimde işlemektir.
NumPy kullanarak diziler oluşturabilir, dizilerin boyutlarını değiştirebilir, belirli koşullara uyan elemanları seçebilir ve temel istatistikleri hesaplayabilirsiniz. Ayrıca matris çarpımı, doğrusal cebir işlemleri, rastgele sayı üretimi ve matematiksel fonksiyonlar için de araçlar sunar.
Örneğin belirli bir değerden büyük sayıları seçmek için koşullu filtreleme kullanılabilir:
Beklenen çıktı:
NumPy, Python’un kendisiyle birlikte gelen bir modül değildir; Python ortamına ayrıca eklenir. Kurulum yöntemi kullandığınız paket yöneticisine ve çalışma ortamına göre değişebilir. Kurulumdan sonra temel kontrol için Python dosyanızda
İçe aktarma hatası alırsanız önce kodu çalıştırdığınız Python ortamının, NumPy’yi kurduğunuz ortamla aynı olup olmadığını kontrol edin. Birden fazla Python kurulumu veya sanal ortam kullanılması, paketin kurulu görünmesine rağmen farklı yorumlayıcıda bulunamamasına yol açabilir. Hata düzelmiyorsa hata metnini, kullanılan Python yorumlayıcısını ve kurulum komutunu birlikte incelemek gerekir; yalnızca kodu değiştirmek sorunun nedenini göstermez.
NumPy’nin ilk öğrenilmesi gereken konuları
NumPy ne işe yarar?
NumPy’nin merkezinde
ndarray adı verilen çok boyutlu dizi yapısı bulunur. Bu yapı, tek boyutlu bir sayı dizisinden iki boyutlu bir tabloya veya daha yüksek boyutlu verilere kadar farklı şekillerde kullanılabilir.Python listesinde her elemana tek tek işlem uygulamanız gerekirken NumPy, aynı işlemi dizinin tamamına uygulamanıza izin verir. Örneğin bir dizideki tüm sayıları ikiyle çarpmak için döngü yazmak yerine doğrudan çarpma işlemi kullanabilirsiniz. Bu yaklaşıma genellikle vektörleştirilmiş işlem denir.
NumPy; doğrusal cebir, istatistik, veri analizi, makine öğrenmesi, görüntü işleme ve bilimsel modelleme gibi alanlarda sık kullanılır. Ancak tek başına bir grafik aracı, veri tabanı veya makine öğrenmesi kütüphanesi değildir. Bu işler için genellikle Matplotlib, pandas veya başka kütüphanelerle birlikte kullanılır.
Temel bir NumPy örneği
NumPy kurulmuş bir Python ortamında aşağıdaki örnek çalıştırıldığında önce bir dizi oluşturulur, ardından dizinin bütün elemanları ikiyle çarpılır:
Python:
import numpy as np
sayilar = np.array([1, 2, 3, 4])
sonuc = sayilar * 2
print(sonuc)
Beklenen çıktı şöyledir:
Kod:
[2 4 6 8]
Burada
np.array() Python listesini NumPy dizisine dönüştürür. sayilar * 2 ifadesi listedeki nesnenin kendisini iki kez tekrarlamaz; dizinin her elemanını ayrı ayrı ikiyle çarpar. Sonuç olarak yeni dizi [2, 4, 6, 8] değerlerini içerir.Aynı işlem Python listesinde doğrudan yapılsaydı
[1, 2, 3, 4] * 2 ifadesi listenin elemanlarını çarpmak yerine listenin tamamını iki kez art arda eklerdi. NumPy’nin önemli farklarından biri, aritmetik işlemleri dizi elemanlarına uygulamasıdır.İki boyutlu dizi ve temel özellikleri
NumPy, tablo biçimindeki verilerle de çalışabilir. Aşağıdaki örnekte iki satır ve üç sütundan oluşan bir dizi oluşturulur:
Python:
import numpy as np
tablo = np.array([
[10, 20, 30],
[40, 50, 60]
])
print(tablo.shape)
print(tablo[1, 2])
print(tablo.mean())
Çıktı:
Kod:
(2, 3)
60
35.0
shape dizinin boyutlarını gösterir. (2, 3) sonucu iki satır ve üç sütun bulunduğu anlamına gelir. tablo[1, 2] ifadesinde indisler sıfırdan başladığı için ikinci satırın üçüncü elemanı, yani 60 alınır. mean() ise dizideki tüm sayıların aritmetik ortalamasını hesaplar.NumPy ile Python listesi arasındaki fark
NumPy’yi ne zaman kullanacağınızı belirlerken verinin yapısı ve yapacağınız işlem önemlidir. Küçük ve farklı türde nesneler içeren basit koleksiyonlarda Python listesi yeterli olabilir. Aynı türden sayısal veriler üzerinde toplu işlem yapılacaksa NumPy daha uygun bir yapı sunar.
| Ölçüt | Python listesi | NumPy dizisi |
|---|---|---|
| Veri yapısı | Farklı türde nesneler içerebilir. | Genellikle aynı türde sayısal veriler için kullanılır. |
| Aritmetik işlemler | Çoğu işlem için döngü gerekir. | İşlem çoğunlukla dizinin tamamına uygulanabilir. |
| Çok boyutlu veri | İç içe listelerle tutulabilir. | Boyut, şekil ve indis işlemleri için özel araçlar sağlar. |
| Kullanım alanı | Genel amaçlı koleksiyonlar | Sayısal hesaplama ve dizi işlemleri |
NumPy ile neler yapılabilir?
NumPy kullanarak diziler oluşturabilir, dizilerin boyutlarını değiştirebilir, belirli koşullara uyan elemanları seçebilir ve temel istatistikleri hesaplayabilirsiniz. Ayrıca matris çarpımı, doğrusal cebir işlemleri, rastgele sayı üretimi ve matematiksel fonksiyonlar için de araçlar sunar.
Örneğin belirli bir değerden büyük sayıları seçmek için koşullu filtreleme kullanılabilir:
Python:
import numpy as np
puanlar = np.array([45, 72, 88, 39, 91])
gecenler = puanlar[puanlar >= 50]
print(gecenler)
Beklenen çıktı:
Kod:
[72 88 91]
puanlar >= 50 ifadesi her eleman için True veya False üretir. NumPy bu koşulu diziye uygulayarak yalnızca 50 ve üzerindeki değerleri seçer. Bu sonuç, puanların gerçekten bir sınavdan geçildiğini kanıtlamaz; yalnızca verilen eşik koşuluna uyan sayıların filtrelendiğini gösterir. Gerçek bir değerlendirmede eşik, eksik değerler ve puanlama kuralı ayrıca belirlenmelidir.NumPy kullanmaya başlarken bilinmesi gerekenler
NumPy, Python’un kendisiyle birlikte gelen bir modül değildir; Python ortamına ayrıca eklenir. Kurulum yöntemi kullandığınız paket yöneticisine ve çalışma ortamına göre değişebilir. Kurulumdan sonra temel kontrol için Python dosyanızda
import numpy as np satırını çalıştırmanız yeterlidir. Bu satır hata vermiyorsa NumPy mevcut çalışma ortamından içe aktarılabiliyor demektir.İçe aktarma hatası alırsanız önce kodu çalıştırdığınız Python ortamının, NumPy’yi kurduğunuz ortamla aynı olup olmadığını kontrol edin. Birden fazla Python kurulumu veya sanal ortam kullanılması, paketin kurulu görünmesine rağmen farklı yorumlayıcıda bulunamamasına yol açabilir. Hata düzelmiyorsa hata metnini, kullanılan Python yorumlayıcısını ve kurulum komutunu birlikte incelemek gerekir; yalnızca kodu değiştirmek sorunun nedenini göstermez.
NumPy’nin ilk öğrenilmesi gereken konuları
array oluşturma, indisleme, shape, veri türleri, koşullu filtreleme ve temel matematiksel işlemlerdir. Bu temeller anlaşıldığında pandas gibi tablo odaklı kütüphanelerdeki birçok işlemin arkasındaki dizi mantığını daha kolay kavrayabilirsiniz.
Son düzenleme: