Heim > Backend-Entwicklung > Python-Tutorial > Welche Bedeutung hat -1 in der Reshape-Funktion von NumPy?

Welche Bedeutung hat -1 in der Reshape-Funktion von NumPy?

Barbara Streisand
Freigeben: 2024-10-20 22:10:30
Original
245 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

Umformung zu (12,)

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

print(reshaped_z.shape)  # (12,)</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage