NumPy Dizi Döngüleri

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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)

Örnek Çalıştır

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 Çalıştır

Ö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)

Örnek Çalıştır