Rumah > pembangunan bahagian belakang > Tutorial Python > 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
Lepaskan: 2024-10-20 22:15:02
asal
1073 orang telah melayarinya

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]])
Salin selepas log masuk

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)
Salin selepas log masuk

Membentuk Semula Menggunakan (-1):

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

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan