Home » python » Iterasi Array NumPy

Iterasi Array NumPy

by Catur Kurnia Sari
by Catur Kurnia Sari

Iterasi berarti melewati elemen satu per satu.

Saat kita menggunakan array multi-dimensi dalam numpy, kita dapat melakukan iterasi menggunakan for loop dari python.

Jika kita melakukan iterasi pada array 1-D, maka iterasi akan melewati setiap elemen satu per satu.

Contoh:
Iterasi pada elemen array 1-D berikut

import numpy as np

arr = np.array([1, 2, 3])

for x in arr:
  print(x)

Iterasi Array 2-D

Dalam array 2-D, iterasi akan melewati semua baris.

Contoh:
Iterasi pada elemen array 2-D berikut

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

for x in arr:
  print(x)

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

Untuk mengembalikan nilai aktual, skalar, kita harus mengulang array di setiap dimensi.

Contoh:
Iterasi pada setiap elemen skalar dari array 2-D

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

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

Iterasi 3-D Array

Dalam array 3-D, iterasi akan melewati semua array 2-D.

Contoh:
Iterasi pada elemen array 3-D berikut

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 represents the 2-D array:")
  print(x)

Untuk mengembalikan nilai aktual, skalar, kita harus mengulang array di setiap dimensi.

Contoh:
Iterasi pada skalar

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)

Iterasi Array Menggunakan nditer()

Fungsi nditer() adalah fungsi bantuan yang dapat digunakan dari iterasi yang paling dasar hingga yang sangat kompleks. Fungsi ini memecahkan beberapa masalah dasar yang dihadapi dalam iterasi, mari kita bahas dengan contoh.

Iterasi pada Setiap Elemen Skalar

Dalam basic for loop akan melakukan iterasi melalui setiap skalar array, kita perlu menggunakan n untuk loop yang mungkin sulit ditulis pada array dengan dimensi yang sangat tinggi.

Contoh:
Iterasi melalui array 3-D berikut

import numpy as np

arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

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

Iterasi Array Dengan Tipe Data Berbeda

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

NumPy tidak mengubah tipe data elemen di-tempat (di mana elemen berada dalam array) sehingga membutuhkan ruang lain untuk melakukan tindakan ini, ruang ekstra itu disebut buffer, dan untuk mengaktifkannya pada nditer() kita gunakan pass flags = [‘buffered’].

Contoh
Iterasi melalui array sebagai string

import numpy as np

arr = np.array([1, 2, 3])

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

Iterasi Dengan Ukuran Step Yang Berbeda

Kita bisa menggunakan filtering dan diikuti dengan iterasi.

Contoh:
Iterasi melalui setiap elemen skalar dari array 2D dengan melewatkan 1 elemen

import numpy as np

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

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

Iterasi Enumerasi Menggunakan ndenumerate()

Pencacahan (Enumerasi) berarti menyebutkan nomor urut suatu hal satu per satu.

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

Contoh:
Menghitung elemen array 1D berikut

import numpy as np

arr = np.array([1, 2, 3])

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

Contoh
Menghitung elemen array 2D berikut

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)

You may also like