Garfield
YZF Admin
NumPy
Bir
Ön koşul olarak NumPy’nin Python ortamında kurulu olması ve kodda içe aktarılması gerekir. Aşağıdaki örnek, iki satır ve üç sütundan oluşan bir
Bu kodun beklenen çıktısı, kullanılan işletim sistemi ve NumPy sürümüne göre veri türü adında küçük farklılıklar dışında şu anlamı taşır:
Burada
Aynı şekle sahip iki dizi üzerinde doğrudan toplama yapılabilir. Aşağıdaki varsayımsal örnekte birinci dizi ürün fiyatlarını, ikinci dizi ise aynı ürünlere uygulanacak ek ücretleri temsil eder:
Çıktı şöyledir:
İşlem eleman bazında yapılır:
Seçim yaparken veri düzeni ve yapılacak işlem önemlidir. Liste, genel amaçlı Python verileri için;
Bu karşılaştırma,
İlk çıktı
ndarray, Python’da çok boyutlu sayısal verileri aynı türden elemanlar hâlinde saklayan temel dizi nesnesidir. Listeye benzer görünse de boyut, şekil, veri türü ve bellek yerleşimi gibi bilgileri birlikte taşır; bu sayede döngüleri tek tek yazmadan toplu matematiksel işlemler yapabilirsiniz. Örneğin iki boyutlu bir ndarray üzerinde toplama yaptığınızda işlem her hücreye uygulanır ve yeni bir dizi elde edilir.ndarray hangi bilgileri taşır?
Bir
ndarray için en önemli özellikler şunlardır:- shape: Dizinin her eksendeki uzunluğunu belirtir.
(2, 3), iki satır ve üç sütun anlamına gelir. - ndim: Dizinin kaç boyutlu olduğunu gösterir.
- size: Dizideki toplam eleman sayısını verir.
- dtype: Elemanların veri türünü belirtir; örneğin
int64veyafloat64. - Tek dtype: Bir
ndarrayiçindeki tüm elemanlar tek birdtypeile tanımlanır.dtype=objectkullanıldığında bu ortak tür, farklı türlerde Python nesnelerine başvurular tutabilir. Sayısal türlerde bu düzen toplu hesaplamaları verimli kılar.
ndarray özellikle aynı türden sayısal veriler üzerinde çalışmak için tasarlanmıştır. Bu nedenle tablo, matris, görüntü pikseli veya zaman serisi gibi düzenli verilerde kullanışlıdır.En küçük çalışan örnek
Ön koşul olarak NumPy’nin Python ortamında kurulu olması ve kodda içe aktarılması gerekir. Aşağıdaki örnek, iki satır ve üç sütundan oluşan bir
ndarray oluşturur:
Python:
import numpy as np
sayilar = np.array([[1, 2, 3],
[4, 5, 6]])
print(sayilar)
print(sayilar.shape)
print(sayilar.ndim)
print(sayilar.dtype)
Bu kodun beklenen çıktısı, kullanılan işletim sistemi ve NumPy sürümüne göre veri türü adında küçük farklılıklar dışında şu anlamı taşır:
Kod:
[[1 2 3]
[4 5 6]]
(2, 3)
2
int...
Burada
(2, 3) dizinin iki satır ve üç sütunlu olduğunu, 2 ise iki boyut bulunduğunu gösterir. dtype çıktısı, sayıların tam sayı türünde saklandığını belirtir. Bu sonuç yalnızca dizinin yapısını gösterir; verilerin doğru veya anlamlı olduğunu kanıtlamaz. Verinin anlamı, diziyi oluşturan uygulamaya bağlıdır.ndarray üzerinde toplu işlem nasıl çalışır?
Aynı şekle sahip iki dizi üzerinde doğrudan toplama yapılabilir. Aşağıdaki varsayımsal örnekte birinci dizi ürün fiyatlarını, ikinci dizi ise aynı ürünlere uygulanacak ek ücretleri temsil eder:
Python:
import numpy as np
fiyatlar = np.array([100, 200, 300])
ek_ucret = np.array([10, 20, 30])
toplam = fiyatlar + ek_ucret
print(toplam)
Çıktı şöyledir:
Kod:
[110 220 330]
İşlem eleman bazında yapılır:
100 + 10, 200 + 20 ve 300 + 30. Bu davranış, aynı işlemi Python döngüsüyle her eleman için ayrı ayrı yazma ihtiyacını azaltır. Ancak dizilerin şekilleri uyumlu değilse işlem hata verebilir veya NumPy’nin yayınlama kuralları nedeniyle beklenmeyen bir sonuç üretebilir. Bu nedenle işlemden önce shape değerlerini kontrol etmek gerekir.Liste ile ndarray arasındaki temel farklar
Seçim yaparken veri düzeni ve yapılacak işlem önemlidir. Liste, genel amaçlı Python verileri için;
ndarray ise düzenli ve çoğunlukla sayısal veri kümeleri için daha uygundur.| Ölçüt | Python listesi | NumPy ndarray |
|---|---|---|
| Veri türü | Farklı türler bir arada bulunabilir. | Elemanlar tek bir dtype ile tanımlanır; object türü farklı Python nesnelerine başvurular tutabilir. |
| Boyut bilgisi | İç içe listelerle dolaylı biçimde temsil edilir. | shape ve ndim ile doğrudan tutulur. |
| Sayısal işlemler | Çoğu işlem için döngü gerekir. | Dizi üzerinde toplu işlemler yapılabilir. |
| Düzenli tablo verisi | Kullanılabilir, ancak yapı kontrolü geliştiriciye kalır. | Satır-sütun yapısı açıkça modellenir. |
ndarray’nin her durumda listenin yerine geçeceği anlamına gelmez. Metin, farklı türde nesneler veya düzensiz iç içe yapılarla çalışıyorsanız liste daha uygun olabilir. Sayısal bir tabloyu dönüştürüp hesaplayacaksanız ndarray daha doğal bir seçimdir.İndeksleme ve dilimleme
ndarray elemanlarına indeksle erişilir. Python’da indeksler sıfırdan başladığı için aşağıdaki dizide ilk satırın indeksi 0, ilk sütunun indeksi de 0 olur:
Python:
import numpy as np
matris = np.array([[10, 20, 30],
[40, 50, 60]])
print(matris[0, 1])
print(matris[:, 1])
İlk çıktı
20 olur; matris[0, 1] birinci satırdaki ikinci elemana erişir. İkinci çıktı [20 50] olur; iki nokta üst üste tüm satırları, 1 ise ikinci sütunu seçer. Böylece verinin yalnızca gerekli bölümünü alabilirsiniz.Sık karıştırılan noktalar
- shape ile size aynı değildir:
shapeeksenlerin uzunluklarını,sizetoplam eleman sayısını verir.(2, 3)şekilli dizininsizedeğeri6’dır. - dtype otomatik dönüştürme yapabilir: Farklı türde değerler birlikte kullanıldığında NumPy ortak bir veri türü seçebilir. Hassas hesaplarda
dtypedeğerini kontrol edin. - ndarray tablo anlamına gelmez: Dizi yalnızca verinin yapısını ve değerlerini taşır; sütun adları, birim bilgileri veya eksik verinin anlamı kendiliğinden eklenmez.
- Kopya ve görünüm ayrımı önemlidir: Bazı dilimleme işlemleri özgün dizinin belleğini paylaşabilir. Bir parçayı bağımsız değiştirmek istiyorsanız gerektiğinde
.copy()kullanın.
ndarray, NumPy’nin düzenli ve çok boyutlu sayısal veriler için kullandığı temel veri yapısıdır. shape, dtype ve indeksleme kurallarını kontrol ederek veriyi doğru biçimde oluşturabilir; toplu işlemlerle hesaplamaları daha kısa ve anlaşılır kodla gerçekleştirebilirsiniz.
Son düzenleme: