Das Kriterium zur Erfüllung für die Bereitstellung der neuen Form ist, dass 'Die neue Form mit der Originalform kompatibel sein sollte'
numpy ermöglicht es uns, einen der neuen Formparameter als -1 anzugeben (z. B .: (2,-1) oder (-1,3) aber nicht (-1, -1)). Das bedeutet einfach, dass es eine unbekannte Dimension ist und wir möchten, dass numpy es herausfindet. Numpy wird dies tun, indem es sich die 'Länge des Arrays und die verbleibenden Dimensionen' ansieht und sicherstellt, dass es das oben genannte Kriterium erfüllt
Jetzt sieh dir das Beispiel an.
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
Versuchen wir jetzt, mit (-1) umzuformen. Das Ergebnis der neuen Form ist (12,) und ist kompatibel mit der Originalform (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
Versuchen wir jetzt, mit (-1, 1) umzuformen. Wir haben die Spalte als 1 angegeben, aber die Zeilen als unbekannt. Daher erhalten wir als Ergebnis der neuen Form (12, 1), wieder kompatibel mit der Originalform (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
Das oben genannte ist konsistent mit numpy
Rat-/Fehlermeldung, reshape(-1,1)
für ein einzelnes Merkmal, also eine einzelne Spalte zu verwenden
Formen Sie Ihre Daten mit array.reshape(-1, 1)
um, wenn Ihre Daten ein einzelnes Merkmal haben
Neue Form als (-1, 2). Zeile unbekannt, Spalte 2. Das Ergebnis der neuen Form ist (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
Versuchen wir jetzt, die Spalte unbekannt zu lassen. Neue Form als (1,-1). Das bedeutet, Zeile ist 1, Spalte unbekannt. Das Ergebnis der neuen Form ist (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
Das oben genannte ist konsistent mit numpy
Rat-/Fehlermeldung, reshape(1,-1)
für eine einzelne Probe, also eine einzelne Zeile zu verwenden
Formen Sie Ihre Daten mit array.reshape(1, -1)
um, wenn es eine einzige Probe enthält
Neue Form (2, -1). Zeile 2, Spalte unbekannt. Das Ergebnis der neuen Form ist (2,6)
z.reshape(2, -1)
array([[ 1, 2, 3, 4, 5, 6],
[ 7, 8, 9, 10, 11, 12]])
Neue Form als (3, -1). Zeile 3, Spalte unbekannt. Das Ergebnis der neuen Form ist (3,4)
z.reshape(3, -1)
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
Und schließlich, wenn wir versuchen, beide Dimensionen als unbekannt anzugeben, also neue Form als (-1,-1). Wird ein Fehler geworfen
z.reshape(-1, -1)
ValueError: kann nur eine unbekannte Dimension angeben