Das Kriterium für die Bereitstellung der neuen Form lautet: "Die neue Form sollte mit der ursprünglichen Form kompatibel sein."
Mit numpy können wir einen der neuen Formparameter als -1 angeben (z. B. (2, -1) oder (-1,3), aber nicht (-1, -1)). Es bedeutet einfach, dass es eine unbekannte Dimension ist und wir möchten, dass Numpy es herausfindet. Und numpy wird dies herausfinden, indem es die 'Länge des Arrays und die verbleibenden Dimensionen' betrachtet und sicherstellt, dass es die oben genannten Kriterien erfüllt
Nun sehen Sie sich das Beispiel an.
z = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]])
z.shape
(3, 4)
Versuchen Sie nun, mit (-1) umzuformen. Ergebnis neue Form ist (12,) und ist kompatibel mit ursprünglicher Form (3,4)
z.reshape(-1)
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
Versuchen Sie nun, sich mit (-1, 1) neu zu formen. Wir haben Spalte als 1, aber Zeilen als unbekannt angegeben. So erhalten wir eine neue Form als (12, 1) .wieder kompatibel mit der ursprünglichen Form (3,4)
z.reshape(-1,1)
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12]])
Das Obige steht im Einklang mit numpy
Ratschlägen / Fehlermeldungen, die reshape(-1,1)
für eine einzelne Funktion verwendet werden sollen. dh einzelne Spalte
Ändern Sie Ihre Daten mithilfe von, array.reshape(-1, 1)
wenn Ihre Daten nur über eine einzige Funktion verfügen
Neue Form als (-1, 2). Zeile unbekannt, Spalte 2. Wir erhalten Ergebnis neue Form als (6, 2)
z.reshape(-1, 2)
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10],
[11, 12]])
Versuchen Sie nun, die Spalte als unbekannt zu halten. Neue Form als (1, -1). dh Zeile ist 1, Spalte unbekannt. wir erhalten Ergebnis neue Form als (1, 12)
z.reshape(1,-1)
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]])
Das Obige steht im Einklang mit numpy
Ratschlägen / Fehlermeldungen, die reshape(1,-1)
für eine einzelne Stichprobe verwendet werden sollen. dh einzelne Reihe
Formen Sie Ihre Daten neu, indem Sie array.reshape(1, -1)
sie verwenden, wenn sie ein einzelnes Beispiel enthalten
Neue Form (2, -1). Zeile 2, Spalte unbekannt. wir erhalten Ergebnis neue Form als (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. wir erhalten Ergebnis neue Form als (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 bereitzustellen, dh eine neue Form wie (-1, -1). Es wird ein Fehler ausgegeben
z.reshape(-1, -1)
ValueError: can only specify one unknown dimension
reshape
, um die gleiche Anzahl von Elementen beizubehalten.