Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Parameter -1 dalam Numpy\'s Reshape() merupakan Wildcard atau Nilai Tetap?

Adakah Parameter -1 dalam Numpy\'s Reshape() merupakan Wildcard atau Nilai Tetap?

Barbara Streisand
Barbara Streisandasal
2024-10-20 22:15:02982semak imbas

Is the -1 Parameter in Numpy's Reshape() a Wildcard or a Fixed Value?

Memahami Peranan -1 dalam Numpy Reshape

Dalam Numpy, kaedah reshape() membenarkan transformasi bentuk tatasusunan. Apabila bekerja dengan tatasusunan 2D, anda boleh membentuk semula tatasusunan 1D menggunakan tatasusunan semula(-1). Contohnya:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])

Biasanya, tatasusunan[-1] menandakan elemen akhir dalam tatasusunan. Walau bagaimanapun, dalam konteks bentuk semula(-1), ini mempunyai makna yang berbeza.

Parameter -1 dalam Bentuk Semula

Parameter -1 dalam bentuk semula(- 1) berfungsi sebagai dimensi kad bebas. Ia menunjukkan bahawa dimensi sepadan bentuk baharu harus ditentukan secara automatik. Ini dilakukan dengan memenuhi kriteria bahawa bentuk baharu mesti diselaraskan dengan bentuk tatasusunan asal, mengekalkan dimensi linearnya.

Numpy membenarkan penggunaan -1 dalam salah satu parameter bentuk, membolehkan spesifikasi dimensi yang tidak diketahui . Contohnya, (-1, 3) atau (2, -1) ialah bentuk yang sah, manakala (-1, -1) bukan.

Contoh Bentuk Semula (-1)

Pertimbangkan tatasusunan berikut:

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

Membentuk Semula Menggunakan (-1):

z.reshape(-1)
# Output: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
# New shape: (12,)

Membentuk Semula Menggunakan (-1, 1) (Ciri Tunggal):

z.reshape(-1, 1)
# Output: array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10],
#                [11], [12]])
# New shape: (12, 1)

Membentuk Semula Menggunakan (-1, 2) (Barisan Tunggal):

z.reshape(1, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])
# New shape: (1, 12)

Membentuk Semula Menggunakan (2, -1):

z.reshape(2, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6], [ 7,  8,  9, 10, 11, 12]])
# New shape: (2, 6)

Membentuk Semula Menggunakan (3, -1) (Bentuk Asal):

z.reshape(3, -1)
# Output: array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# New shape: (3, 4)

Perhatikan bahawa menyatakan kedua-dua dimensi sebagai -1, iaitu (-1, -1), akan mengakibatkan ralat.

Dengan memahami kepentingan -1 dalam bentuk semula(), pembangun boleh mengubah bentuk tatasusunan dengan berkesan untuk memenuhi keperluan pemprosesan data khusus mereka dalam Numpy.

Atas ialah kandungan terperinci Adakah Parameter -1 dalam Numpy\'s Reshape() merupakan Wildcard atau Nilai Tetap?. 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