Arrays Abflachen
Das "Flattening" eines Arrays bedeutet, ein mehrdimensionales Array in ein eindimensionales Array (1D-Array) umzuwandeln, wobei der Inhalt entrollt wird.
Dieser Vorgang ist nützlich, wenn die Elemente eines Arrays einzeln verarbeitet werden sollen oder wenn Daten für bestimmte Algorithmen besser geeignet gemacht werden sollen.
Es gibt drei Möglichkeiten zum Flattening in NumPy:
- Verwendung der Methode
ndarray.reshape(-1)oder der Funktionnumpy.reshape(array, -1); - Verwendung der Methode
ndarray.ravel()oder der Funktionnumpy.ravel(array); - Verwendung der Methode
ndarray.flatten().
reshape(-1)
Die Methode .reshape(-1) oder die Funktion reshape(array, -1) gibt ein zusammenhängendes, flaches Array mit der gleichen Anzahl von Elementen zurück.
Wie bereits im vorherigen Kapitel erwähnt, berechnet -1 die Größe der Dimension automatisch basierend auf der Größe des ursprünglichen Arrays. Da nur eine einzelne Ganzzahl für shape übergeben wird, wird ein eindimensionales Array mit der gleichen Anzahl von Elementen zurückgegeben.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
Die Methode .reshape() oder die entsprechende Funktion gibt eine Ansicht des Originalarrays zurück, sodass alle Änderungen am umgeformten Array auch das Originalarray beeinflussen.
Die Verwendung von flattened_array = np.reshape(array_2d, -1) kann anstelle des Methodenaufrufs verwendet werden.
ravel()
Die Methode ndarray.ravel() oder die Funktion numpy.ravel(array) funktioniert genauso wie reshape(-1) und gibt ebenfalls eine Ansicht des Originalarrays zurück:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) kann anstelle des Methodenaufrufs verwendet werden.
ndarray.flatten()
Falls eine Kopie des ursprünglichen Arrays und keine Ansicht benötigt wird, kann die Methode .flatten() verwendet werden:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Sie können jederzeit eine Kopie einer Ansicht eines Arrays erstellen, um ein separates Objekt zu erzeugen und diese Kopie zu ändern, ohne das ursprüngliche Array zu beeinflussen.
Swipe to start coding
- Die
.flatten()-Methode korrekt zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_flattenedspeichern. - Die
.reshape()-Methode korrekt zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_reshapedspeichern. - Die
.ravel()-Methode zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_raveledspeichern. - Von den drei erstellten flachen Arrays dasjenige auswählen, das eine Kopie des Original-Arrays ist (kein View), und dessen erstes Element (mit positivem Index) auf
100setzen.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
What is the difference between a view and a copy in NumPy?
When should I use flatten() instead of reshape(-1) or ravel()?
Can you explain what happens if I modify the flattened array in each case?
Awesome!
Completion rate improved to 3.7
Arrays Abflachen
Swipe um das Menü anzuzeigen
Das "Flattening" eines Arrays bedeutet, ein mehrdimensionales Array in ein eindimensionales Array (1D-Array) umzuwandeln, wobei der Inhalt entrollt wird.
Dieser Vorgang ist nützlich, wenn die Elemente eines Arrays einzeln verarbeitet werden sollen oder wenn Daten für bestimmte Algorithmen besser geeignet gemacht werden sollen.
Es gibt drei Möglichkeiten zum Flattening in NumPy:
- Verwendung der Methode
ndarray.reshape(-1)oder der Funktionnumpy.reshape(array, -1); - Verwendung der Methode
ndarray.ravel()oder der Funktionnumpy.ravel(array); - Verwendung der Methode
ndarray.flatten().
reshape(-1)
Die Methode .reshape(-1) oder die Funktion reshape(array, -1) gibt ein zusammenhängendes, flaches Array mit der gleichen Anzahl von Elementen zurück.
Wie bereits im vorherigen Kapitel erwähnt, berechnet -1 die Größe der Dimension automatisch basierend auf der Größe des ursprünglichen Arrays. Da nur eine einzelne Ganzzahl für shape übergeben wird, wird ein eindimensionales Array mit der gleichen Anzahl von Elementen zurückgegeben.
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.reshape(-1) print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
Die Methode .reshape() oder die entsprechende Funktion gibt eine Ansicht des Originalarrays zurück, sodass alle Änderungen am umgeformten Array auch das Originalarray beeinflussen.
Die Verwendung von flattened_array = np.reshape(array_2d, -1) kann anstelle des Methodenaufrufs verwendet werden.
ravel()
Die Methode ndarray.ravel() oder die Funktion numpy.ravel(array) funktioniert genauso wie reshape(-1) und gibt ebenfalls eine Ansicht des Originalarrays zurück:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.ravel() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Modified initial array:\n{array_2d}')
flattened_array = np.ravel(array_2d) kann anstelle des Methodenaufrufs verwendet werden.
ndarray.flatten()
Falls eine Kopie des ursprünglichen Arrays und keine Ansicht benötigt wird, kann die Methode .flatten() verwendet werden:
1234567import numpy as np array_2d = np.array([[1, 2, 3], [4, 5, 6]]) flattened_array = array_2d.flatten() print(f'Flatenned array: {flattened_array}') # Changing the first element of flattened_array flattened_array[0] = 10 print(f'Initial array:\n{array_2d}')
Sie können jederzeit eine Kopie einer Ansicht eines Arrays erstellen, um ein separates Objekt zu erzeugen und diese Kopie zu ändern, ohne das ursprüngliche Array zu beeinflussen.
Swipe to start coding
- Die
.flatten()-Methode korrekt zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_flattenedspeichern. - Die
.reshape()-Methode korrekt zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_reshapedspeichern. - Die
.ravel()-Methode zum Flatten vonexam_scoresverwenden und das Ergebnis inexam_scores_raveledspeichern. - Von den drei erstellten flachen Arrays dasjenige auswählen, das eine Kopie des Original-Arrays ist (kein View), und dessen erstes Element (mit positivem Index) auf
100setzen.
Lösung
Danke für Ihr Feedback!
single