Reshape Array NumPy

Merubah bentuk array

Merubah bentuk berarti mengubah bentuk array.

Bentuk array adalah jumlah elemen di setiap dimensi.

Dengan merubah bentuk, kami dapat menambah atau menghapus dimensi atau mengubah jumlah elemen di setiap dimensi.

Merubah bentuk dari 1-D ke 2-D

Contoh

Ubah berikut array 1-D yang memiliki 12 elemen menjadi array 2-D.

Dimensi luar paling besar akan memiliki 4 array, masing-masing berisi 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)

Jalankan Instan

Merubah bentuk dari 1-D ke 3-D

Contoh

Ubah berikut array 1-D yang memiliki 12 elemen menjadi array 3-D.

Dimensi luar paling besar akan memiliki 2 array, masing-masing berisi 3 array, dengan setiap array berisi 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)

Jalankan Instan

Apakah kami dapat merubah bentuk ke apapun?

Ya, selama elemen yang dibutuhkan untuk merubah bentuk sama di kedua bentuk.

Kami dapat merubah array 1D 8 elemen menjadi 4 elemen di 2 baris 2D array, tetapi kami tidak dapat merubahnya menjadi 3 baris 2D array 3 elemen, karena itu akan memerlukan 3x3 = 9 elemen.

Contoh

Coba mengubah array 1D yang memiliki 8 elemen menjadi array 2D dengan 3 elemen di setiap dimensi (akan menghasilkan kesalahan):

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)

Jalankan Instan

Kembalikan salinan atau tampilan?

Contoh

Periksa apakah array yang dihasilkan adalah salinan atau tampilan:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)

Jalankan Instan

Contoh di atas mengembalikan array asli, jadi ini adalah tampilan.

Dimensi Tidak Diketahui

Anda dapat menggunakan dimensi 'tidak diketahui'.

Artinya Anda tidak perlu menentukan angka pasti untuk satu dimensi di metode reshape.

Diberikan -1 Sebagai nilai, NumPy akan menghitung angka untuk Anda.

Contoh

Mengubah array 1D dengan 8 elemen menjadi array 3D dengan 2x2 elemen:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)

Jalankan Instan

Keterangan:Kami tidak dapat mengubah -1 Diberikan ke lebih dari satu dimensi.

Pembenahan array

Pembenahan array (Flattening the arrays) adalah mengubah array multidimensi menjadi array 1D.

Kami dapat menggunakan reshape(-1) Untuk mencapai hal ini.

Contoh

Mengubah array menjadi array 1D:

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)

Jalankan Instan

Keterangan:Ada banyak fungsi yang dapat mengubah bentuk array numpy flatten, ravel, dan dapat mengatur ulang elemen rot90, flip, fliplr, flipud. Fungsi-fungsi ini termasuk bagian menengah hingga tinggi numpy.