Heim >Backend-Entwicklung >Python-Tutorial >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?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 22:15:021074Durchsuche

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

Die Rolle von -1 bei 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]])

Typischerweise bezeichnet Array[-1] 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 die folgende Anordnung:

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 das Verständnis der Bedeutung von -1 in reshape() können Entwickler Array-Formen effektiv umwandeln, um ihre spezifischen Datenverarbeitungsanforderungen in Numpy zu erfüllen.

Das obige ist der detaillierte Inhalt vonIst der Parameter -1 in Numpys Reshape() ein Platzhalter oder ein fester Wert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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