NumPy Dizi Yineleme
Dizileri yineleme
Yineleme, öğelerden tek tek geçmek anlamına gelir.
Numpy'de çok boyutlu dizilerle uğraştığımız için bunu python'un temel
for
döngüsünü kullanarak yapabiliriz.
1 boyutlu bir diziyi yinelersek, her bir elemandan birer birer geçer.
Örnek
Aşağıdaki 1-D dizisinin öğelerini yineleyin:
import numpy as np
arr = np.array([1, 2, 3])
for x in arr:
print(x)
2-B Dizileri Yineleme
2 boyutlu bir dizide tüm satırlardan geçecektir.
Örnek
Aşağıdaki 2 boyutlu dizinin öğelerini yineleyin:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
print(x)
Bir n -D dizisini yinelersek, birer birer n-1'inci boyuttan geçecektir.
Gerçek değerleri, skalerleri döndürmek için, her boyutta dizileri yinelemeliyiz.
Örnek
2 boyutlu dizinin her bir skaler öğesinde yineleme yapın:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for x
in arr:
for y in x:
print(y)
3-B Dizileri Yineleme
3 boyutlu dizide tüm 2 boyutlu dizilerden geçecektir.
Örnek
Aşağıdaki 3-B dizinin öğelerini yineleyin:
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öndürmek için, her boyutta dizileri yinelemeliyiz.
Örnek
Skalere kadar yineleyin:
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() Kullanarak Dizileri Yineleme
İşlev nditer()
, çok temelden çok ileri yinelemelere kadar kullanılabilen bir yardımcı işlevdir. Yinelemede karşılaştığımız bazı temel sorunları çözüyor, örneklerle üzerinden geçelim.
Her Skaler Elemanda Yineleme
Temel for
döngülerde, bir dizinin her bir skalerini yinelerken
, çok yüksek boyutlu diziler için yazması zor olabilen n döngü kullanmamız gerekir.
for
Örnek
Aşağıdaki 3-B diziyi yineleyin:
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ürleriyle Yinelenen Dizi
op_dtypes
Yineleme sırasında öğelerin veri türünü değiştirmek için argüman kullanabilir ve beklenen veri türünü iletebiliriz.
NumPy, yerinde öğenin veri türünü değiştirmez (öğenin dizide olduğu yer), bu nedenle bu eylemi gerçekleştirmek için başka bir alana ihtiyaç duyar, bu fazladan boşluğa arabellek denir ve onu etkinleştirmek için nditer()
geçiyoruz flags=['buffered']
.
Örnek
Diziyi bir dize olarak yineleyin:
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ım Boyutuyla Yineleme
Filtreleme ve ardından yineleme kullanabiliriz.
Örnek
1 öğeyi atlayarak 2B dizinin her skaler öğesini yineleyin:
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
for x in np.nditer(arr[:, ::2]):
print(x)
denumerate() Kullanarak Numaralandırılmış Yineleme
Numaralandırma, bir şeyin sıra numarasını tek tek belirtmek anlamına gelir.
Bazen yineleme sırasında öğenin karşılık gelen dizinine ihtiyaç duyarız, ndenumerate()
yöntem bu kullanım durumları için kullanılabilir.
Örnek
Aşağıdaki 1B dizi öğelerinde numaralandırın:
import numpy as np
arr = np.array([1, 2, 3])
for idx, x in
np.ndenumerate(arr):
print(idx, x)
Örnek
Aşağıdaki 2B dizinin öğelerini numaralandırın:
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)