Kursinhalt
Ultimatives Numpy
Ultimatives Numpy
Arrays Glätten
Das Flattening eines Arrays bedeutet, es von einem mehrdimensionalen Array in ein 1D-Array umzuwandeln, im Wesentlichen seinen Inhalt zu entwirren.
Diese Operation ist nützlich, wenn Sie die Elemente eines Arrays einzeln verarbeiten müssen oder wenn Sie Daten für bestimmte Algorithmen geeigneter machen möchten.
Es gibt drei mögliche Optionen 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, abgeflachtes Array mit der gleichen Anzahl von Elementen zurück.
Wie bereits im vorherigen Kapitel erwähnt, berechnet -1
automatisch die Größe der Dimension basierend auf der Größe des ursprünglichen Arrays. Da wir nur eine einzelne Ganzzahl für shape
übergeben, wird ein 1D-Array mit der gleichen Anzahl von Elementen zurückgegeben.
import 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 ursprünglichen Arrays zurück, sodass alle Änderungen am umgeformten Array auch das ursprüngliche Array beeinflussen.
Die Verwendung von flattened_array = np.reshape(array_2d, -1)
kann anstelle des Aufrufs der Methode verwendet werden.
ravel()
Die Methode ndarray.ravel()
oder die Funktion numpy.ravel(array)
funktioniert genauso wie reshape(-1)
und gibt ebenfalls eine Ansicht des ursprünglichen Arrays zurück:
import 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 Sie eine Kopie des ursprünglichen Arrays und keine Ansicht wünschen, können Sie die .flatten()
Methode verwenden:
import 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}')
Hinweis
Sie können immer 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
-
Verwenden Sie die
.flatten()
Methode korrekt, umexam_scores
zu glätten und speichern Sie das Ergebnis inexam_scores_flattened
. -
Verwenden Sie die
.reshape()
Methode korrekt, umexam_scores
zu glätten und speichern Sie das Ergebnis inexam_scores_reshaped
. -
Verwenden Sie die
.ravel()
Methode zum Glätten vonexam_scores
und speichern Sie das Ergebnis inexam_scores_raveled
. -
Wählen Sie aus den drei erstellten geglätteten Arrays dasjenige aus, das eine Kopie des ursprünglichen Arrays ist, nicht eine Ansicht, und weisen Sie seinem ersten Element
100
zu (verwenden Sie positives Indexing).
Lösung
Danke für Ihr Feedback!
Arrays Glätten
Das Flattening eines Arrays bedeutet, es von einem mehrdimensionalen Array in ein 1D-Array umzuwandeln, im Wesentlichen seinen Inhalt zu entwirren.
Diese Operation ist nützlich, wenn Sie die Elemente eines Arrays einzeln verarbeiten müssen oder wenn Sie Daten für bestimmte Algorithmen geeigneter machen möchten.
Es gibt drei mögliche Optionen 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, abgeflachtes Array mit der gleichen Anzahl von Elementen zurück.
Wie bereits im vorherigen Kapitel erwähnt, berechnet -1
automatisch die Größe der Dimension basierend auf der Größe des ursprünglichen Arrays. Da wir nur eine einzelne Ganzzahl für shape
übergeben, wird ein 1D-Array mit der gleichen Anzahl von Elementen zurückgegeben.
import 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 ursprünglichen Arrays zurück, sodass alle Änderungen am umgeformten Array auch das ursprüngliche Array beeinflussen.
Die Verwendung von flattened_array = np.reshape(array_2d, -1)
kann anstelle des Aufrufs der Methode verwendet werden.
ravel()
Die Methode ndarray.ravel()
oder die Funktion numpy.ravel(array)
funktioniert genauso wie reshape(-1)
und gibt ebenfalls eine Ansicht des ursprünglichen Arrays zurück:
import 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 Sie eine Kopie des ursprünglichen Arrays und keine Ansicht wünschen, können Sie die .flatten()
Methode verwenden:
import 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}')
Hinweis
Sie können immer 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
-
Verwenden Sie die
.flatten()
Methode korrekt, umexam_scores
zu glätten und speichern Sie das Ergebnis inexam_scores_flattened
. -
Verwenden Sie die
.reshape()
Methode korrekt, umexam_scores
zu glätten und speichern Sie das Ergebnis inexam_scores_reshaped
. -
Verwenden Sie die
.ravel()
Methode zum Glätten vonexam_scores
und speichern Sie das Ergebnis inexam_scores_raveled
. -
Wählen Sie aus den drei erstellten geglätteten Arrays dasjenige aus, das eine Kopie des ursprünglichen Arrays ist, nicht eine Ansicht, und weisen Sie seinem ersten Element
100
zu (verwenden Sie positives Indexing).
Lösung
Danke für Ihr Feedback!