Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Peranan Yang Dimainkan -1 dalam Kaedah .reshape() NumPy untuk Pembentukan Semula Tatasusunan?
Apakah Maksud -1 dalam Kaedah .reshape() NumPy?
Dalam NumPy, kaedah .reshape() digunakan untuk mengubah suai bentuk tatasusunan pelbagai dimensi. Menariknya, nilai -1 boleh digunakan untuk membentuk semula tatasusunan dengan cara tertentu.
Memahami Konsep -1
Dalam NumPy, -1 menunjukkan yang tidak diketahui dimensi untuk membentuk semula tatasusunan. Apabila anda memberikan -1 sebagai salah satu parameter bentuk, anda menyatakan bahawa bentuk harus dikira secara automatik untuk memenuhi syarat tertentu.
Keserasian dengan Bentuk Asal
Sesuatu yang penting syarat untuk membentuk semula tatasusunan ialah bentuk baharu mestilah serasi dengan bentuk asal. Ini bermakna bilangan elemen dalam tatasusunan bentuk semula mesti sepadan dengan bilangan elemen dalam tatasusunan asal.
Menyimpulkan Dimensi Tidak Diketahui
NumPy mengira dimensi yang tidak diketahui dengan mengambil kira panjang tatasusunan dan dimensi lain yang ditentukan. Ia memastikan bentuk baharu itu memenuhi syarat keserasian yang dinyatakan di atas.
Contoh
Pertimbangkan tatasusunan NumPy berikut:
<code class="python">z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])</code>
Bentuk asalnya ialah (3, 4).
Membentuk semula dengan (-1)
Membentuk semula z dengan (-1) sebagai satu-satunya parameter memberi kita tatasusunan 1D dengan semua elemen:
<code class="python">z.reshape(-1) array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])</code>
Membentuk semula dengan (-1, 1)
Membentuk semula dengan (-1, 1) mencipta tatasusunan dengan baris yang tidak diketahui dan satu lajur:
<code class="python">z.reshape(-1, 1) array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10], [11], [12]])</code>
Membentuk semula dengan (-1, 2)
Menggunakan (-1, 2) menghasilkan tatasusunan dengan baris dan dua lajur yang tidak diketahui:
<code class="python">z.reshape(-1, 2) array([[ 1, 2], [ 3, 4], [ 5, 6], [ 7, 8], [ 9, 10], [11, 12]])</code>
Membentuk semula dengan (1, -1)
Membentuk semula dengan (1, -1) mencipta tatasusunan dengan satu baris dan lajur yang tidak diketahui:
<code class="python">z.reshape(1,-1) array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])</code>
Membentuk semula dengan (-1, -1)
Walau bagaimanapun, jika anda menentukan kedua-dua dimensi sebagai -1, NumPy akan menimbulkan ValueError kerana ia tidak dapat menentukan bentuk baharu secara unik.
Atas ialah kandungan terperinci Apakah Peranan Yang Dimainkan -1 dalam Kaedah .reshape() NumPy untuk Pembentukan Semula Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!