Pembentukan Ulang Array NumPy


Membentuk kembali array

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.


Bentuk Ulang Dari 1-D ke 2-D

Contoh

Konversikan larik 1-D berikut dengan 12 elemen menjadi larik 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)

Bentuk Ulang Dari 1-D ke 3-D

Contoh

Konversikan larik 1-D berikut dengan 12 elemen menjadi larik 3-D.

Dimensi terluar akan memiliki 2 larik yang berisi 3 larik, 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 diperlukan untuk membentuk kembali sama di kedua bentuk.

Kita dapat membentuk ulang 8 elemen larik 1D menjadi 4 elemen dalam 2 baris larik 2D tetapi kita tidak dapat membentuknya kembali menjadi 3 elemen 3 baris larik 2D karena 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)

Mengembalikan Salin atau Lihat?

Contoh

Periksa apakah array yang dikembalikan 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)

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


Dimensi Tidak Diketahui

Anda diperbolehkan memiliki satu dimensi "tidak diketahui".

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

Lulus -1sebagai nilainya, dan NumPy akan menghitung angka ini untuk Anda.

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)

Catatan: Kami tidak dapat melewati -1lebih dari satu dimensi.


Meratakan array

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)

Catatan: Ada banyak fungsi untuk mengubah bentuk array di numpy flatten, raveldan juga untuk mengatur ulang elemen rot90, flip, fliplr, flipuddll. Ini termasuk dalam bagian Intermediate to Advanced dari numpy.


Uji Diri Anda Dengan Latihan

Olahraga:

Gunakan metode NumPy yang benar untuk mengubah bentuk larik dari 1-D ke 2-D.

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

newarr = arr.(4, 3)