Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah Kepentingan -1 dalam Fungsi Pembentukan Semula NumPy?

Apakah Kepentingan -1 dalam Fungsi Pembentukan Semula NumPy?

Barbara Streisand
Barbara Streisandasal
2024-10-20 22:10:30140semak imbas

What is the Significance of -1 in NumPy's Reshape Function?

Memahami Peranan -1 dalam NumPy Reshape

Dalam NumPy, reshape ialah fungsi berkuasa yang membolehkan kita mengubah bentuk tatasusunan sambil mengekalkan data asas. Apabila menggunakan bentuk semula, kita boleh menentukan bentuk baharu tatasusunan sebagai satu tuple dimensi, tetapi kadangkala, kita mungkin menghadapi nilai enigmatik -1.

Merungkai Maksud -1

Kriteria untuk membentuk semula tatasusunan ialah bentuk baharu mestilah serasi dengan bentuk asal. Dalam konteks ini, -1 berfungsi sebagai pemegang tempat untuk dimensi yang tidak diketahui. Apabila kita menentukan satu dimensi sebagai -1, NumPy menentukan nilai sebenar dimensi itu berdasarkan jumlah panjang tatasusunan dan dimensi lain yang ditentukan.

Contoh Pembentukan Semula dengan -1

Mari kita pertimbangkan contoh untuk menggambarkan bagaimana -1 berfungsi dalam membentuk semula.

<code class="python">import numpy as np

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

print(z.shape)  # (3, 4)</code>

Membentuk semula kepada (12,)

<code class="python">reshaped_z = z.reshape(-1)

print(reshaped_z.shape)  # (12,)</code>

Dalam ini kes, bentuk baharu ditentukan sebagai (-1,), menunjukkan bahawa kita mahu tatasusunan 1D. NumPy mengira dimensi yang tidak diketahui sebagai 12, menghasilkan tatasusunan 1D yang mengandungi semua elemen tatasusunan asal.

Membentuk semula kepada (-1, 1)

<code class="python">reshaped_z = z.reshape(-1, 1)

print(reshaped_z.shape)  # (12, 1)</code>

Di sini, NumPy mentafsirkan -1 sebagai dimensi baris yang tidak diketahui, manakala kami menentukan dimensi lajur sebagai 1. Hasilnya ialah tatasusunan 2D dengan 12 baris dan 1 lajur.

Membentuk semula kepada (1, - 1)

<code class="python">reshaped_z = z.reshape(1, -1)

print(reshaped_z.shape)  # (1, 12)</code>

Dalam senario ini, kami menentukan bilangan baris sebagai 1, menjadikan bilangan lajur tidak diketahui. NumPy menentukan dimensi lajur sebagai 12, menghasilkan tatasusunan 2D dengan 1 baris dan 12 lajur.

Menggunakan -1 untuk Ciri Tunggal atau Sampel

Adalah penting untuk diperhatikan yang NumPy syorkan menggunakan (-1, 1) untuk membentuk semula data dengan satu ciri dan (1, -1) untuk data yang mengandungi satu sampel.

<code class="python"># Reshape for a single feature
single_feature = np.reshape(z, (-1, 1))

# Reshape for a single sample
single_sample = np.reshape(z, (1, -1))</code>

Had -1

Walaupun -1 menawarkan fleksibiliti dalam membentuk semula, ia tidak boleh digunakan untuk menentukan kedua-dua dimensi sebagai tidak diketahui. Percubaan untuk berbuat demikian akan mencetuskan ValueError.

<code class="python"># Attempting to set both dimensions as -1
invalid_reshape = z.reshape(-1, -1)

# ValueError: can only specify one unknown dimension</code>

Memahami peranan -1 dalam pembentukan semula NumPy adalah penting untuk membentuk semula tatasusunan dengan dimensi yang tidak diketahui, membolehkan kami memanipulasi data dengan berkesan sambil mengekalkan integritinya.

Atas ialah kandungan terperinci Apakah Kepentingan -1 dalam Fungsi Pembentukan Semula NumPy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn