NumPy Dizi Döngüleri
- Önceki Sayfa NumPy Dizi Yeniden Şekillendirme
- Sonraki Sayfa NumPy Dizi Birleştirme
Dizi iterasyonu
Iterasyon, elemanları tek tek dolaşma anlamına gelir.
Numpy'de çok boyutlu dizileri işlemekken, Python'un temel for döngüsünü kullanarak bu işlemi gerçekleştirebiliriz.
1-D dizisini döngüde iterasyon yaparsak, her bir elemanı tek tek dolaşacaktır.
Örnek
Aşağıdaki bir boyutlu dizisinin elemanlarını dolaşma:
import numpy as np arr = np.array([1, 2, 3]) for x in arr: print(x)
2-D dizisini dolaşma
2-D dizide, tüm satırları dolaşacaktır.
Örnek
Aşağıdaki iki boyutlu dizisinin elemanlarını dolaşma:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: print(x)
Bir n-D diziyi döngüde iterasyon yaparsak, n-1 boyutunu tek tek dolaşacaktır.
Gerçek değerleri, skalerleri dönmek için her boyutta diziyi dolaşmamız gerekmektedir.
Örnek
2-D dizisinin her bir küçük elemanını dolaşma:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) for x in arr: for y in x: print(y)
3-D dizisini dolaşma
3-D dizide, tüm 2-D dizileri dolaşacaktır.
Örnek
Aşağıdaki 3-D dizisinin elemanlarını dolaşma:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr: print(x)
Gerçek değerleri, skalerleri dönmek için her boyutta diziyi dolaşmamız gerekmektedir.
Örnek
Tutarlıya kadar dolaşma:
import numpy as np arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) for x in arr: for y in x: for z in y: print(z)
nditer() ile diziyi dolaşma
fonksiyonu nditer()
bir yardımcı fonksiyondur, çok temel迭代den çok yüksek seviyeli迭代ye kadar her türlü kullanılabilir. Bu,迭代te karşılaştığımız bazı temel sorunları çözmektedir, örneklerle tanıtacağız.
her bir küçük eleman elementini dolaşma
Temel for
Döngüde, dizinin her bir küçük elemanını dolaşmak için n tane for
Döngü, yüksek boyutlu diziler için yazmak zor olabilir.
Örnek
Aşağıdaki 3-D dizisini dolaşma:
import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) for x in np.nditer(arr): print(x)
farklı veri türlerinin dizilerini döngüde kullanabiliriz
Kullanabiliriz op_dtypes
Parametreleri, beklenen veri türünü geçirmek ve elementlerin veri türünü döngü sırasında değiştirmek için kullanabiliriz.
NumPy, elemanların veri türlerini yerinde değiştirmeyecek (elemanlar dizide yer alır), bu yüzden bu işlemi gerçekleştirmek için bazı ek alan gerektirir, bu ek alan buffer olarak adlandırılır, bu alanın nditer()
Bu özelliği etkinleştirdiğimizde, flags=['buffered']
。
Örnek
Diziyi string olarak tarayın:
import numpy as np arr = np.array([1, 2, 3]) for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']) print(x)
Farklı adımlarla döngü yapma
Filtreleme yapabilir ve ardından döngü yapabiliriz.
Örnek
2D dizinin her bir küçültülmüş elemanını tararken 1 elemanı atla:
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for x in np.nditer(arr[:, ::2]): print(x)
ndenumerate() ile sayma yapma
Sayma, şeylerin sırayla belirtilmiş numaralarını içerir.
Bazen, döngü sırasında elemanın ilgili indeksini gerektiren senaryolar olur, bu tür vakalar için ndenumerate()
Yöntem.
Örnek
Aşağıdaki 1D dizi elemanlarını say
import numpy as np arr = np.array([1, 2, 3]) for idx, x in np.ndenumerate(arr): print(idx, x)
Örnek
Aşağıdaki 2D dizi elemanlarını say
import numpy as np arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]]) for idx, x in np.ndenumerate(arr): print(idx, x)
- Önceki Sayfa NumPy Dizi Yeniden Şekillendirme
- Sonraki Sayfa NumPy Dizi Birleştirme