Reshape Array NumPy
- Halaman Sebelumnya Bentuk Array NumPy
- Halaman Berikutnya Iterasi Array NumPy
Merubah bentuk array
Merubah bentuk bermaksud mengubah bentuk array.
Bentuk array adalah jumlah elemen di dalam setiap dimensi.
Dengan merubah bentuk, kami boleh menambah atau menghapuskan dimensi atau mengubah jumlah elemen di dalam setiap dimensi.
Dari 1-D kepada 2-D
Contoh
Tukar array 1-D yang mempunyai 12 elemen kepada array 2-D.
Dimensi luar paling besar akan mempunyai 4 array, di mana setiap array mengandungi 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)
Dari 1-D kepada 3-D
Contoh
Tukar array 1-D yang mempunyai 12 elemen kepada array 3-D.
Dimensi luar paling besar akan mempunyai 2 array, di mana setiap array mengandungi 3 array, dan setiap array mengandungi 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)
Kami boleh merubah bentuk kepada apa sahaja?
Ya, selama elemen yang diperlukan untuk merubah bentuk adalah sama di kedua bentuk.
Kami boleh merubah array 1D 8 elemen kepada 4 elemen di dalam 2 baris array 2D, tetapi kami tidak boleh merubahnya kepada array 3 baris 3 elemen 2D kerana ia memerlukan 3x3 = 9 elemen.
Contoh
Cuba mengubah array 1D yang mempunyai 8 elemen kepada array 2D dengan setiap dimensi mempunyai 3 elemen (akan menghasilkan ralat):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Kembalikan salinan atau papar?
Contoh
Periksa sama ada array yang diperoleh adalah salinan atau papar
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 asal, jadi ia adalah paparan.
Dimensi Tak Diketahui
Anda boleh gunakan satu 'dimensi yang tak diketahui'.
Ini bermakna anda tidak perlu menentukan nombor pasti untuk salah satu dimensi dalam kaedah reshape.
Diambil -1
Sebagai nilai, NumPy akan menghitung nombor ini untuk anda.
Contoh
Mengubah array 1D yang mengandungi 8 elemen kepada 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)
Keterangan:Kami tidak boleh mengubah -1
Diambil untuk lebih daripada satu dimensi.
Pempanasan Array
Pempanasan array (Flattening the arrays) adalah untuk merubah array multidimensi kepada array 1D.
Kami boleh gunakan reshape(-1)
Untuk mencapai ini.
Contoh
Mengubah array kepada array 1D:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Keterangan:Ada banyak fungsi yang boleh diubah bentuk array flatten, ravel, dan dapat diatur semula elemen rot90, flip, fliplr, flipud. Fungsi ini termasuk bahagian menengah hingga tinggi numpy.
- Halaman Sebelumnya Bentuk Array NumPy
- Halaman Berikutnya Iterasi Array NumPy