Umformen von Arrays
Array-Umformung in NumPy ermöglicht es, die Form eines Arrays zu ändern, während alle Elemente erhalten bleiben. Dies ist eine häufig verwendete Operation im maschinellen Lernen, da viele Funktionen und Methoden von Bibliotheken für maschinelles Lernen Arrays mit einer bestimmten Form erfordern.
Array-Formen
Die Form eines NumPy-Arrays ist ein Tupel, das die Anzahl der Elemente entlang jeder Dimension (Achse) angibt.
Zum Beispiel hat ein 1D-Array der Länge 5 die Form (5,), während ein 2D-Array mit 3 Zeilen und 4 Spalten die Form (3, 4) besitzt:
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
NumPy-Arrays verfügen über eine .reshape()-Methode zum Umformen. Es muss lediglich die Form des resultierenden Arrays entweder als Ganzzahl, als Tupel von Ganzzahlen oder als einzelne Ganzzahlen übergeben werden.
Diese Methode verändert das Array nicht direkt, sondern gibt ein neues Array zurück.
Tatsächlich gibt .reshape() eine Ansicht des ursprünglichen Arrays zurück, sodass alle Änderungen am umgeformten Array auch das Originalarray beeinflussen.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
Die Anzahl der Elemente im umgeformten Array muss mit der des ursprünglichen Arrays übereinstimmen, daher kann keine beliebige Form übergeben werden.
Im Beispiel führt das Umformen des Arrays in eine Form mit 3 Zeilen und 4 Spalten (3x4) oder in eine Form mit 2 Blöcken, jeweils mit 2 Zeilen und 3 Spalten (2x2x3) weiterhin zu insgesamt 12 Elementen.
Umformen mit -1
In NumPy berechnet die Verwendung von -1 in der .reshape()-Methode die Größe dieser Dimension automatisch basierend auf der Größe des ursprünglichen Arrays, wobei die Gesamtanzahl der Elemente erhalten bleibt.
Die Verwendung von .reshape(-1, 1) ist besonders nützlich im maschinellen Lernen, wenn ein 1D-Array in ein 2D-Array mit einer Spalte umgeformt werden soll. Die Anzahl der Zeilen entspricht in diesem Fall der Anzahl der Elemente (automatisch berechnet).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
Das umgeformte Array wird als 2D-Array mit 5 Zeilen und 1 Spalte gespeichert und hat die Form (5, 1). Im Gegensatz dazu hat das ursprüngliche 1D-Array die Form (5,), was ein Tupel mit einem einzigen Element ist. Für jedes 1D-Array ist die Form immer (n,), wobei n die Anzahl der Elemente darstellt.
numpy.reshape()
Die Funktion reshape() in NumPy ist identisch mit der Methode .reshape(), jedoch muss ein Array als erstes Argument übergeben werden. Für den Parameter shape kann entweder ein Tupel von Ganzzahlen oder eine einzelne Ganzzahl übergeben werden, z. B. np.reshape(array, (3, 4)):
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Sie verfügen über ein Array sales_data_2021 mit simulierten Quartalsumsätzen für zwei Produkte im Jahr 2021. Die ersten 4 Elemente stehen für die Quartalsumsätze des ersten Produkts, die letzten 4 Elemente für die Quartalsumsätze des zweiten Produkts.
- Die geeignete Methode von
sales_data_2021verwenden, um das Array in ein 2D-Array umzuwandeln. - Die erste Zeile soll die Quartalsumsätze für das erste Produkt enthalten.
- Die zweite Zeile soll die Quartalsumsätze für das zweite Produkt enthalten.
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
Can you explain the difference between using .reshape() and np.reshape()?
What happens if I try to reshape an array to a shape that doesn't match the total number of elements?
Can you give more examples of reshaping arrays with different dimensions?
Awesome!
Completion rate improved to 3.7
Umformen von Arrays
Swipe um das Menü anzuzeigen
Array-Umformung in NumPy ermöglicht es, die Form eines Arrays zu ändern, während alle Elemente erhalten bleiben. Dies ist eine häufig verwendete Operation im maschinellen Lernen, da viele Funktionen und Methoden von Bibliotheken für maschinelles Lernen Arrays mit einer bestimmten Form erfordern.
Array-Formen
Die Form eines NumPy-Arrays ist ein Tupel, das die Anzahl der Elemente entlang jeder Dimension (Achse) angibt.
Zum Beispiel hat ein 1D-Array der Länge 5 die Form (5,), während ein 2D-Array mit 3 Zeilen und 4 Spalten die Form (3, 4) besitzt:
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
NumPy-Arrays verfügen über eine .reshape()-Methode zum Umformen. Es muss lediglich die Form des resultierenden Arrays entweder als Ganzzahl, als Tupel von Ganzzahlen oder als einzelne Ganzzahlen übergeben werden.
Diese Methode verändert das Array nicht direkt, sondern gibt ein neues Array zurück.
Tatsächlich gibt .reshape() eine Ansicht des ursprünglichen Arrays zurück, sodass alle Änderungen am umgeformten Array auch das Originalarray beeinflussen.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
Die Anzahl der Elemente im umgeformten Array muss mit der des ursprünglichen Arrays übereinstimmen, daher kann keine beliebige Form übergeben werden.
Im Beispiel führt das Umformen des Arrays in eine Form mit 3 Zeilen und 4 Spalten (3x4) oder in eine Form mit 2 Blöcken, jeweils mit 2 Zeilen und 3 Spalten (2x2x3) weiterhin zu insgesamt 12 Elementen.
Umformen mit -1
In NumPy berechnet die Verwendung von -1 in der .reshape()-Methode die Größe dieser Dimension automatisch basierend auf der Größe des ursprünglichen Arrays, wobei die Gesamtanzahl der Elemente erhalten bleibt.
Die Verwendung von .reshape(-1, 1) ist besonders nützlich im maschinellen Lernen, wenn ein 1D-Array in ein 2D-Array mit einer Spalte umgeformt werden soll. Die Anzahl der Zeilen entspricht in diesem Fall der Anzahl der Elemente (automatisch berechnet).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
Das umgeformte Array wird als 2D-Array mit 5 Zeilen und 1 Spalte gespeichert und hat die Form (5, 1). Im Gegensatz dazu hat das ursprüngliche 1D-Array die Form (5,), was ein Tupel mit einem einzigen Element ist. Für jedes 1D-Array ist die Form immer (n,), wobei n die Anzahl der Elemente darstellt.
numpy.reshape()
Die Funktion reshape() in NumPy ist identisch mit der Methode .reshape(), jedoch muss ein Array als erstes Argument übergeben werden. Für den Parameter shape kann entweder ein Tupel von Ganzzahlen oder eine einzelne Ganzzahl übergeben werden, z. B. np.reshape(array, (3, 4)):
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Sie verfügen über ein Array sales_data_2021 mit simulierten Quartalsumsätzen für zwei Produkte im Jahr 2021. Die ersten 4 Elemente stehen für die Quartalsumsätze des ersten Produkts, die letzten 4 Elemente für die Quartalsumsätze des zweiten Produkts.
- Die geeignete Methode von
sales_data_2021verwenden, um das Array in ein 2D-Array umzuwandeln. - Die erste Zeile soll die Quartalsumsätze für das erste Produkt enthalten.
- Die zweite Zeile soll die Quartalsumsätze für das zweite Produkt enthalten.
Lösung
Danke für Ihr Feedback!
single