Cara menggunakan RESHAPE pada Python

Numpy Reshape () dapat membuat array multidimensi dan memperoleh statistik matematika lainnya. Numpy dapat diimpor sebagai impor numpy seperti NP. Metode np.reshape () memberikan bentuk baru ke array tanpa mengubah elemennya.

NP.reshape

NP.reshape (Array, Shape, Order = ‘C’) adalah fungsi matematika yang membentuk array tanpa mengubah data array. Fungsi np.reshape () menerima tiga argumen dan mengembalikan array yang dibentuk kembali. Untuk bekerja dengan fungsi np.reshape (), Anda harus melakukannya Instal Numpy untuk tutorial ini. Anda dapat memeriksa versi numpy Anda di sini

Mari kita lihat sintaks metode Numpy Reshape ().

Sintaksis

numpy.reshape (a, newshape, order='C')
 

Parameter

  1. Himpunan: Ini menggambarkan input_array yang bentuknya akan diubah.
  2. membentuk: Ini mewakili nilai int atau tupel int.
  3. memesan: Parameter ini mewakili urutan operasi. Ini dapat berupa C_CONTIGUEAL atau F_CONTIGUE, di mana C Order beroperasi ROW-RISE pada array, dan F Order mengoperasikan operasi-bijaksana.

Nilai pengembalian

Fungsi Numpy Reshape () mengembalikan array dengan bentuk baru yang memiliki isinya tidak berubah.

Contoh

Program untuk menunjukkan kerja fungsi reshape ().

import numpy as np

array = np.arange(6)
print("Array Value: \n", array)

# array reshaped with 3 rows and 2 columns
array = np.arange(6).reshape(3, 2)
print("Array reshaped with 3 rows and 2 columns : \n", array)

# array reshaped with 2 rows and 3 columns
array = np.arange(6).reshape(2, 3)
print("Array reshaped with 2 rows and 3 columns : \n", array) 

Keluaran

Array Value:
 [0 1 2 3 4 5]
Array reshaped with 3 rows and 2 columns :
 [[0 1]
 [2 3]
 [4 5]]
Array reshaped with 2 rows and 3 columns :
 [[0 1 2]
 [3 4 5]] 

Penjelasan

Dalam kode di atas, array asli adalah array 1D.

Jadi, di 1 st Fungsi, array dimodifikasi menjadi 3 baris dan dua kolom.

Di 2 nd Fungsi, array dimodifikasi menjadi 2 baris dan tiga kolom.

Catatan

Dalam fungsi di atas, array hanya akan dibentuk kembali ketika ukuran array sama dengan penggandaan baris dan kolom. Jika tidak, maka shell akan meminta kesalahan.

Contoh 2

Lihat kode berikut.

import numpy as np

x = np.array([[21, 11, 19], [46, 18, 21]])
data = np.reshape(x, (2, -2))
print(data) 

Keluaran

[[21 11 19]
 [46 18 21]] 

Cara menggunakan metode ndarray.reshape () dalam python

Ambil ndarray array numpy satu dimensi berikut sebagai contoh.

# app.py

import numpy as np

arr = np.arange(12)
print('The array is:', arr)
print('The shape of array is:', arr.shape)
print('The dimension of array is:', arr.ndim)
 

Keluaran

The array is: [ 0  1  2  3  4  5  6  7  8  9 10 11]
The shape of array is: (12,)
The dimension of array is: 1 

Tentukan bentuk yang dikonversi sebagai daftar atau tuple Dalam argumen pertama dari metode reshape () Numpy.ndarray.

Lihat kode berikut.

import numpy as np

arr = np.arange(12)
print('The array is:', arr)
print('The shape of array is:', arr.shape)
print('The dimension of array is:', arr.ndim)

arr_3_4 = arr.reshape([3, 4])
print(arr_3_4)

print('The dimension is: ', arr_3_4.ndim)
print('The shape is: ', arr_3_4.shape) 

Keluaran

The array is: [ 0  1  2  3  4  5  6  7  8  9 10 11]
The shape of array is: (12,)
The dimension of array is: 1
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
The dimension is:  2
The shape is:  (3, 4) 

Pertama, kami telah mendefinisikan array kemudian mencetak bentuk dan dimensi array.

Kemudian, kami telah membentuk kembali array dalam bentuk [3, 4] dan kemudian mencetak dimensi dan bentuk array. Jika bentuknya tidak cocok dengan jumlah item dalam array asli, maka ValueError akan dilemparkan.

Membentuk kembali array dari 1d ke 3d dalam python

Pertama, kami akan menggunakan np araange () Fungsi untuk membuat array 1D dengan.9 elemen, dan kemudian kita akan menggunakan metode reshape () untuk membentuk kembali array ke array (3 x 3).

# importing the numpy module
import numpy as np

arr = np.arange(9)
print('1D Array using arange() method \n', arr)
print('\n')

print('3D Array using reshape() method')
data = arr.reshape(3, 3)
print(data)
 

Keluaran

1D Array using arange() method
 [0 1 2 3 4 5 6 7 8]


3D Array using reshape() method
[[0 1 2]
 [3 4 5]
 [6 7 8]] 

Anda dapat melihat bahwa kami telah membuat array 1D menggunakan metode ARange () dan kemudian membentuk kembali array itu ke dalam array 3D menggunakan metode reshape ().

Bisakah kita membentuk kembali array ke dalam bentuk apa pun?

Ya, kita bisa, selama elemen yang diperlukan untuk pembentukan kembali sama dalam kedua bentuk.

Kita dapat membentuk kembali 8 elemen array 1D menjadi 4 elemen dalam 2 baris array 2d, tetapi kita tidak dapat membentuknya menjadi 3 elemen 3 baris array 2d yang akan membutuhkan 3 × 3 = 9 elemen.

Mari kita coba konversi array 1D dengan 8 elemen ke array 2D dengan 3 elemen di setiap dimensi.

# importing the numpy module
import numpy as np

arr = np.arange(8)

newarr = arr.reshape(3, 3)

print(newarr)
 

Keluaran

Traceback (most recent call last):
  File "app.py", line 6, in 
    newarr = arr.reshape(3, 3)
ValueError: cannot reshape array of size 8 into shape (3,3) 

Kami punya ValueError: Tidak dapat membentuk kembali array ukuran 8 menjadi bentuk (3,3).

Jadi, jika Anda ingin mengubah bentuk array, pastikan bahwa perkalian dimensi sama dengan panjang array.

Numpy Reshape Mengembalikan Salinan atau Lihat?

Metode Numpy Reshape () mengembalikan array asli, sehingga mengembalikan tampilan.

# importing the numpy module
import numpy as np

arr = np.arange(8)

print(arr.reshape(2, 4).base)
 

Keluaran

[0 1 2 3 4 5 6 7] 

Anda dapat melihat bahwa itu mengembalikan array asli. Jadi ini adalah pemandangan.

Melewati dimensi yang tidak diketahui

Dalam Numpy Reshape (), Anda diizinkan memiliki satu dimensi “tidak diketahui”.

Artinya adalah bahwa Anda tidak perlu menentukan angka yang tepat untuk salah satu dimensi dalam metode reshape.

Lulus -1 sebagai nilainya, dan Numpy akan menghitung nomor ini untuk Anda.

# importing the numpy module
import numpy as np

arr = np.arange(8)

newarr = arr.reshape(2, 2, -1)

print(newarr)
 

Keluaran

[[[0 1]
  [2 3]]

 [[4 5]
  [6 7]]] 

Harap ingat satu hal bahwa kita tidak dapat melewati -1 ke lebih dari satu dimensi.

Meratakan array menggunakan numpy reshape ()

Array perataan berarti mengubah array multidimensi menjadi array 1D.

Kita dapat menggunakan reshape (-1) untuk melakukan ini.

# importing the numpy module
import numpy as np

arr = np.array([[11, 21, 31], [46, 52, 62]])
print('The array is: \n', arr)
print('The dimension is: ', arr.ndim)

print('\n')

newarr = arr.reshape(-1)
print('After reshaping, The array is: \n', newarr)
print('After reshaping, the dimension is: ', newarr.ndim)
 

OutputFirst, Anda bisa melihatnya Kami telah mendefinisikan array 2D dan kemudian meratakan array 2D itu ke array 1D menggunakan metode reshape (). Akhirnya, kami telah mencetak dimensinya menggunakan properti ndim numpy.

Kesimpulan

Dalam fungsi numpy.reshape (), tentukan numpy.ndarray asli sebagai argumen pertama, dan bentuk untuk dikonversi ke argumen kedua sebagai daftar atau tuple .

Jika bentuknya tidak cocok dengan jumlah item dalam array asli, Nilaieror akan terjadi.

Lihat juga

Numpy tri ()

Numpy empt_ like ()

Numpy kosong ()

Numpy one ()

Numpy zeros_ like ()