NumPy Array Iterating

 


Iterating Array

Iterating/iterasi berarti menelusuri elemen satu per satu.

saat kita berurusan dengan array multi-dimensi di numpy, kita bisa melakukan ini menggunakan for loop dasar Python.

Jika kita mengulangi/loop pada array 1-D, ia akan melewati setiap elemen satu per satu.

Contoh 
Iterasi pada elemen array 1-D berikut.
import numpy as np

arr = np.array([123])

for x in arr:
  print(x)

Iterating 2-D Arrays

Dalam array 2-D itu akan melewati semua baris.

Contoh
Lakukan iterasi pada elemen array 2D berikut.
import numpy as np

arr = np.array([[123], [456]])

for x in arr:
  print(x)

Jika kita iterasi pada array n -D maka akan melewati dimensi n-1 satu per satu.

Untuk mengembalikan nilai aktual, skalar, kita harus mengulangi/loop array di setiap dimensi.

Contoh
Iterasi pada  setiap elemen skalar dari array 2-D.
import numpy as np

arr = np.array([[123], [456]])

for x in arr:
  for y in x:
    print(y)

Iterating 3-D Arrays

Dalam array 3-D itu akan melalui semua array 2-D.

Contoh
Iterasi pada elemen array 3-D berikut.
import numpy as np

arr = np.array([[[123], [456]], [[789], [101112]]])

for x in arr:
  print(x)

Untuk mengembalikan nilai aktual, skalar, kita harus mengulangi/loop array di setiap dimensi.

Contoh
Iterasi ke skalar.
import numpy as np

arr = np.array([[[123], [456]], [[789], [101112]]])

for x in arr:
  for y in x:
    for z in y:
      print(z)

Iterating Arrays Using nditer()

Fungsi nditer() adalah fungsi bantuan yang dapat digunakan dari iterasi yang sangat dasar hingga yang sangat lanjut. Ini memecahkan beberapa masalah dasar yang kita hadapi dalam iterasi, mari kita membahasnya dengan contoh.

Iterating on Each Scalar Element

Dalam for loop dasar, iterasi melalui setiap skalar array kita perlu menggunkan n for loop yang mungkin sulit untuk ditulis untuk array dengan dimensi yang sangat tinggi.

Contoh
Iterasi melalui array 3-D berikut.
import numpy as np

arr = np.array([[[12], [34]], [[56], [78]]])

for x in np.nditer(arr):
  print(x)

Iterating Array With Different Data Types

Kita dapat menggunakan op_dtypes argumen dan memberikan tipe data yang diharapkan untuk mengubah tipe data elemen saat iterasi.

NumPy tidak mengubah tipe data elemen di tempat (dimana elemen berada dalam array) sehingga perlu beberapa ruang lain untuk melakukan tindakan ini, ruang ekstra itu disebut buffer, dan untuk mengaktifkannya di nditer() we pass flags=['buffered'].

Contoh
Iterasi melalui array sebagai string.
import numpy as np

arr = np.array([123])

for x in np.nditer(arr, flags=['buffered'], op_dtypes=['S']):
  print(x)

Iterating With Different Step Size

Kita bisa menggunakan filtering dan diikuti dengan iterasi.

Contoh
Ulangi/iterate setiap elemen skalar dari array 2-D dengan melewatkan 1 elemen.
import numpy as np

arr = np.array([[1234], [5678]])

for x in np.nditer(arr[:, ::2]):
  print(x)

Enumerated Iteration Using ndenumerate()

Enumeration berarti menyebutkan nomor urut sesuatu satu per satu.

Terkadang kita memerlukan index elemen yang sesuai saat iterasi, ndenumerate() metode ini dapat digunakan untuk kasus penggunaan tersebut.

Contoh
Hitung pada elemen array 1D berikut.
import numpy as np

arr = np.array([123])

for idx, x in np.ndenumerate(arr):
  print(idx, x)

Contoh
Hitung elemen array 2D berikut.
import numpy as np

arr = np.array([[1234], [5678]])

for idx, x in np.ndenumerate(arr):
  print(idx, x)

Komentar

Postingan populer dari blog ini

NumPy Array Search

NumPy Array Split