„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ist der Parameter -1 in Numpys Reshape() ein Platzhalter oder ein fester Wert?

Ist der Parameter -1 in Numpys Reshape() ein Platzhalter oder ein fester Wert?

Veröffentlicht am 04.11.2024
Durchsuche:656

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

Die Rolle von -1 in Numpy Reshape verstehen

In Numpy ermöglicht die reshape()-Methode die Transformation von Array-Formen. Wenn Sie mit 2D-Arrays arbeiten, ist es möglich, diese mit reshape(-1) in 1D-Arrays umzuformen. Zum Beispiel:

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]])

Array[-1] bezeichnet normalerweise das letzte Element in einem Array. Im Kontext von reshape(-1) hat dies jedoch eine andere Bedeutung.

Der Parameter -1 in Reshape

Der Parameter -1 in reshape(- 1) dient als Platzhalterdimension. Es zeigt an, dass die entsprechende Abmessung der neuen Form automatisch ermittelt werden soll. Dies geschieht durch Erfüllung des Kriteriums, dass die neue Form an der ursprünglichen Array-Form ausgerichtet sein muss und ihre lineare Dimension beibehalten muss.

Numpy erlaubt die Verwendung von -1 in einem der Formparameter und ermöglicht so die Angabe unbekannter Dimensionen . Beispielsweise sind (-1, 3) oder (2, -1) gültige Formen, während (-1, -1) dies nicht ist.

Beispiele für die Umformung von (-1)

Betrachten Sie das folgende Array:

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

Umformen mit (-1):

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

Umformen mit (-1, 1) (Einzelelement):

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

Umformen mit (-1, 2) (einzelne Zeile):

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

Umformen mit (2, -1):

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

Umformen mit (3, -1) (Originalform):

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

Beachten Sie, dass die Angabe beider Dimensionen als -1, d. h. (-1, -1), zu einem Fehler führt.

Durch Verständnis der Bedeutung von -1 in reshape() können Entwickler Array-Formen effektiv transformieren, um ihre spezifischen Datenverarbeitungsanforderungen in Numpy zu erfüllen.

Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729433662 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3