Die Funktion numpy.reshape() ist im NumPy-Paket verfügbar. Wie der Name schon sagt, bedeutet Reshape „Formveränderungen“. Die Funktion numpy.reshape() hilft uns, einem Array eine neue Form zu verleihen, ohne seine Daten zu ändern.
Manchmal müssen wir die Daten von breit auf lang umformen. In dieser Situation müssen wir das Array mit der Funktion reshape() umformen.
Syntax
numpy.reshape(arr, new_shape, order='C')
Parameter
Es gibt die folgenden Parameter der reshape()-Funktion:
1) arr: array_like
Dies ist ein Ndarray. Dies ist das Quellarray, das wir umformen möchten. Dieser Parameter ist wichtig und spielt eine wichtige Rolle in der Funktion numpy.reshape().
thread.destroy
2) new_shape: int oder Tupel von ints
Die Form, in die wir unser ursprüngliches Array konvertieren möchten, sollte mit dem ursprünglichen Array kompatibel sein. Bei einer Ganzzahl ist das Ergebnis ein 1-D-Array dieser Länge. Eine Formdimension kann -1 sein. Hier wird der Wert durch die Länge des Arrays und die restlichen Abmessungen angenähert.
3) Reihenfolge: {'C', 'F', 'A'}, optional
Diese Indexreihenfolgeparameter spielen eine entscheidende Rolle in der reshape()-Funktion. Diese Indexreihenfolgen werden verwendet, um die Elemente des Quellarrays zu lesen und die Elemente mithilfe dieser Indexreihenfolge im umgeformten Array zu platzieren.
- Die Indexreihenfolge „C“ bedeutet, die Elemente zu lesen/schreiben, die eine C-ähnliche Indexreihenfolge verwenden, bei der sich der Index der letzten Achse am schnellsten ändert, während sich der Index der ersten Achse am langsamsten ändert.
- Die Indexreihenfolge „F“ bedeutet, die Elemente zu lesen/schreiben, die die Fortran-ähnliche Indexreihenfolge verwenden, wobei sich der Index der letzten Achse am langsamsten und der Index der ersten Achse am schnellsten ändert.
- Die Reihenfolge „C“ und „F“ nimmt keinen Einfluss auf das Speicherlayout des zugrunde liegenden Arrays und bezieht sich nur auf die Reihenfolge der Indizierung.
- Die Indexreihenfolge „A“ bedeutet, die Elemente in einer Fortran-ähnlichen Indexreihenfolge zu lesen/schreiben, wenn arr im Speicher zusammenhängend ist, andernfalls wird eine C-ähnliche Reihenfolge verwendet.
Kehrt zurück
Diese Funktion gibt ein Ndarray zurück. Wenn möglich, handelt es sich um ein neues Ansichtsobjekt. andernfalls handelt es sich um eine Kopie. Es gibt keine Garantie für das Speicherlayout des zurückgegebenen Arrays.
Beispiel 1: C-ähnliche Indexreihenfolge
import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y
Ausgabe:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
Im obigen Code
- Wir haben numpy mit dem Aliasnamen np importiert.
- Wir haben mit der Funktion np.arrange() ein Array „a“ erstellt.
- Wir haben die Variable „y“ deklariert und den Rückgabewert der Funktion np.reshape() zugewiesen.
- Wir haben das Array „x“ und die Form in der Funktion übergeben.
- Zuletzt haben wir versucht, den Wert von arr auszudrucken.
In der Ausgabe wurde das Array als drei Zeilen und vier Spalten dargestellt.
Beispiel 2: Äquivalent zu C ravel, dann C reshape
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y
Die Funktion ravel() wird zum Erstellen eines zusammenhängenden, abgeflachten Arrays verwendet. Zurückgegeben wird ein eindimensionales Array, das die Elemente der Eingabe enthält. Eine Kopie wird nur dann erstellt, wenn sie benötigt wird.
Java löst eine Ausnahme aus
Ausgabe:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
Beispiel 3: Fortran-ähnliche Indexreihenfolge
import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y
Ausgabe:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]])
Im obigen Code
- Wir haben numpy mit dem Aliasnamen np importiert.
- Wir haben mit der Funktion np.arrange() ein Array „a“ erstellt.
- Wir haben die Variable „y“ deklariert und den zurückgegebenen Wert der Funktion np.reshape() zugewiesen.
- Wir haben das Array „x“ sowie die Form und die Fortran-ähnliche Indexreihenfolge in der Funktion übergeben.
- Zuletzt haben wir versucht, den Wert von arr auszudrucken.
In der Ausgabe wurde das Array als vier Zeilen und drei Spalten dargestellt.
Beispiel 4: Fortran-ähnliche Indexreihenfolge
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y
Ausgabe:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]])
Beispiel 5: Der nicht spezifizierte Wert wird auf 2 geschätzt
import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y
Im obigen Code
- Wir haben numpy mit dem Aliasnamen np importiert.
- Wir haben mit der Funktion np.arrange() ein Array „a“ erstellt.
- Wir haben die Variable „y“ deklariert und den Rückgabewert der Funktion np.reshape() zugewiesen.
- Wir haben das Array „x“ und die Form (nicht spezifizierter Wert) in der Funktion übergeben.
- Zuletzt haben wir versucht, den Wert von arr auszudrucken.
In der Ausgabe wurde das Array als zwei Zeilen und fünf Spalten dargestellt.
Ausgabe:
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])