NumPy Array Reshape
Reshaping Arrays
Reshaping berarti mengubah bentuk array.
Bentuk array adalah jumlah elemen dalam setiap dimensi.
Dengan membentuk kembali kita dapat menambah atau menghapus dimensi atau mengubah jumlah elemen di setiap dimensi.
Reshape From 1-D to 2-D
Contoh
Konversikan array 1-D berikut dengan 12 elemen menjadi array 2-D.
Dimensi terluar akan memiliki 4 array, masing-masing dengan 3 elemen.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(4, 3)
print(newarr)Reshape From 1-D to 3-D
Contoh
Konversikan array 1-D berikut dengan 12 elemen menjadi array 3-D.
Dimensi terluar akan memiliki 2 array yang berisi 3 array, masing-masing dengan 2 elemen.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(2, 3, 2)
print(newarr)Bisakah kita membentuk kembali ke bentuk apapun?
Ya. selama elemen yang dibutuhkan untuk membentuk kembali sama dikedua bentuk.
Kita dapat membentuk ulang array 1D 8 elemen menjadi 4 elemen dalam 2 baris array 2D tetapi kita tidak dapat membentuknya kembali menjadi 2 elemen 3 baris 2D karna akan membutuhkan 3x3 = 9 elemen.
Contoh
Coba ubah array 1D dengan 8 elemen menjadi array 2D dengan 3 elemen di setiap dimensi (akan menimbulkan kesalahan).
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)Return Copy or View?
Contoh
Periksa apakah array yang dikembalikan adalah salinan/copy atau tampilan/view.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)Contoh diatas mengembalikan array asli, jadi ini adalah tampilan/view.
Unknown Dimension
Kita diperbolehkan memiliki satu dimensi "tidak diketahui".
Artinya kita tidak perlu menentukan angka pasti untuk salah satu dimensi dalam metode reshape.
Pass -1 sebagai nilainya, dan NumPy akan meghitung angka ini untuk kita.
Contoh
Konversi array 1D dengan 8 elemen ke array 3D dengan elemen 2x2.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)Note: Kita tidak dapat melewati -1 lebih dari satu dimensi.
Flattening the Arrays
Flattening array berarti mengubah array multidimensi menjadi array 1D.
Kita bisa gunakan reshape(-1) untuk melakukan ini.
Contoh
Ubah array menjadi array 1D.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)Note: Ada banyak fungsi untuk mengubah bentuk array di numpy flatten, ravel dan juga untuk mengatur ulang elemen rot90, flip, fliplr, flipud dll. Ini termasuk dalam bagian Intermediate to Advanced dari numpy.

Komentar
Posting Komentar