Heim > Artikel > Backend-Entwicklung > Welche Bedeutung hat -1 in der Reshape-Funktion von NumPy?
Die Rolle von -1 in NumPy Reshape verstehen
In NumPy ist Reshape eine leistungsstarke Funktion, die es uns ermöglicht, die Form eines zu transformieren Array unter Beibehaltung der zugrunde liegenden Daten. Wenn wir reshape verwenden, können wir die neue Form des Arrays als Tupel von Dimensionen angeben, aber gelegentlich stoßen wir auf den rätselhaften Wert von -1.
Die Bedeutung von -1 enträtseln
Das Kriterium für die Umformung eines Arrays ist, dass die neue Form mit der ursprünglichen Form kompatibel sein muss. -1 dient in diesem Zusammenhang als Platzhalter für eine unbekannte Dimension. Wenn wir eine Dimension als -1 angeben, bestimmt NumPy den tatsächlichen Wert dieser Dimension basierend auf der Gesamtlänge des Arrays und den anderen angegebenen Dimensionen.
Beispiele für die Umformung mit -1
Betrachten wir ein Beispiel, um zu veranschaulichen, wie -1 bei der Umformung funktioniert.
<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>
Umformung zu (12,)
<code class="python">reshaped_z = z.reshape(-1) print(reshaped_z.shape) # (12,)</code>
Hier In diesem Fall wird die neue Form als (-1,) angegeben, was angibt, dass wir ein 1D-Array wünschen. NumPy berechnet die unbekannte Dimension als 12, was zu einem 1D-Array führt, das alle Elemente des ursprünglichen Arrays enthält.
Umformung in (-1, 1)
<code class="python">reshaped_z = z.reshape(-1, 1) print(reshaped_z.shape) # (12, 1)</code>
Hier interpretiert NumPy -1 als unbekannte Zeilendimension, während wir die Spaltendimension als 1 angeben. Das Ergebnis ist ein 2D-Array mit 12 Zeilen und 1 Spalte.
Umformung in (1, - 1)
<code class="python">reshaped_z = z.reshape(1, -1) print(reshaped_z.shape) # (1, 12)</code>
In diesem Szenario geben wir die Anzahl der Zeilen als 1 an und lassen die Anzahl der Spalten unbekannt. NumPy bestimmt die Spaltendimension als 12, was zu einem 2D-Array mit 1 Zeile und 12 Spalten führt.
Verwendung von -1 für einzelne Features oder Beispiele
Es ist wichtig zu beachten dass NumPy die Verwendung von (-1, 1) empfiehlt, um Daten mit einem einzelnen Merkmal umzuformen, und (1, -1) für Daten, die eine einzelne Stichprobe enthalten.
<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>
Einschränkungen von -1
Während -1 Flexibilität bei der Umformung bietet, kann es nicht verwendet werden, um beide Dimensionen als unbekannt anzugeben. Der Versuch, dies zu tun, löst einen ValueError aus.
<code class="python"># Attempting to set both dimensions as -1 invalid_reshape = z.reshape(-1, -1) # ValueError: can only specify one unknown dimension</code>
Das Verständnis der Rolle von -1 bei der NumPy-Umformung ist entscheidend für die Umformung von Arrays mit unbekannten Dimensionen, damit wir Daten effektiv manipulieren und gleichzeitig ihre Integrität bewahren können.
Das obige ist der detaillierte Inhalt vonWelche Bedeutung hat -1 in der Reshape-Funktion von NumPy?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!