Rimodellamento Degli Array
Il reshaping degli array in NumPy consente di modificare la forma di un array mantenendo tutti gli elementi. Si tratta di un'operazione comunemente utilizzata nell'apprendimento automatico, poiché molte funzioni e metodi delle librerie di machine learning richiedono che gli array abbiano una forma specifica.
Forme degli array
La forma di un array NumPy è una tupla che indica il numero di elementi lungo ciascuna dimensione (asse).
Ad esempio, un array 1D di lunghezza 5 ha una forma di (5,), mentre un array 2D con 3 righe e 4 colonne ha una forma di (3, 4):
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()
Gli array NumPy dispongono di un metodo .reshape() per il rimodellamento. È sufficiente fornire la forma dell'array risultante come intero, tupla di interi o interi come argomenti separati.
Questo metodo non modifica l'array in place, ma restituisce un nuovo array.
In realtà, .reshape() restituisce una vista dell'array originale, quindi qualsiasi modifica apportata all'array rimodellato influenzerà anche l'array originale.
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)
Il numero di elementi nell'array rimodellato deve essere lo stesso dell'array originale, quindi non è possibile passare una forma arbitraria.
Nel nostro esempio, il rimodellamento dell'array in una forma di 3 righe e 4 colonne (3x4) oppure in una forma di 2 blocchi, ciascuno contenente 2 righe e 3 colonne (2x2x3) produce comunque un totale di 12 elementi.
Rimodellamento con -1
In NumPy, quando si utilizza -1 nel metodo .reshape(), la libreria calcola automaticamente la dimensione di quella dimensione in base alla dimensione originale dell'array, mantenendo invariato il numero totale di elementi.
L'utilizzo di .reshape(-1, 1) è particolarmente utile nell'ambito del machine learning quando è necessario rimodellare un array 1D in un array 2D con una sola colonna. In questo caso, il numero di righe corrisponde al numero di elementi (calcolato automaticamente).
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)
L'array rimodellato viene memorizzato come array 2D con 5 righe e 1 colonna, avente la forma (5, 1). Al contrario, l'array 1D iniziale ha la forma (5,), che è una tupla con un solo elemento. Per qualsiasi array 1D, la forma è sempre (n,), dove n rappresenta il numero di elementi.
numpy.reshape()
La funzione reshape() in NumPy è identica al metodo .reshape(), ma occorre passare un array come primo argomento. Per il parametro shape, è possibile fornire una tupla di interi oppure un singolo intero, ad esempio: 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
Hai un array sales_data_2021 con dati di vendita trimestrali simulati per due prodotti nel 2021. I primi 4 elementi rappresentano le vendite trimestrali del primo prodotto, mentre gli ultimi 4 elementi rappresentano le vendite trimestrali del secondo prodotto.
- Utilizzare il metodo appropriato di
sales_data_2021per rimodellarlo in un array 2D. - La prima riga deve contenere le vendite trimestrali del primo prodotto.
- La seconda riga deve contenere le vendite trimestrali del secondo prodotto.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 3.7
Rimodellamento Degli Array
Scorri per mostrare il menu
Il reshaping degli array in NumPy consente di modificare la forma di un array mantenendo tutti gli elementi. Si tratta di un'operazione comunemente utilizzata nell'apprendimento automatico, poiché molte funzioni e metodi delle librerie di machine learning richiedono che gli array abbiano una forma specifica.
Forme degli array
La forma di un array NumPy è una tupla che indica il numero di elementi lungo ciascuna dimensione (asse).
Ad esempio, un array 1D di lunghezza 5 ha una forma di (5,), mentre un array 2D con 3 righe e 4 colonne ha una forma di (3, 4):
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()
Gli array NumPy dispongono di un metodo .reshape() per il rimodellamento. È sufficiente fornire la forma dell'array risultante come intero, tupla di interi o interi come argomenti separati.
Questo metodo non modifica l'array in place, ma restituisce un nuovo array.
In realtà, .reshape() restituisce una vista dell'array originale, quindi qualsiasi modifica apportata all'array rimodellato influenzerà anche l'array originale.
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)
Il numero di elementi nell'array rimodellato deve essere lo stesso dell'array originale, quindi non è possibile passare una forma arbitraria.
Nel nostro esempio, il rimodellamento dell'array in una forma di 3 righe e 4 colonne (3x4) oppure in una forma di 2 blocchi, ciascuno contenente 2 righe e 3 colonne (2x2x3) produce comunque un totale di 12 elementi.
Rimodellamento con -1
In NumPy, quando si utilizza -1 nel metodo .reshape(), la libreria calcola automaticamente la dimensione di quella dimensione in base alla dimensione originale dell'array, mantenendo invariato il numero totale di elementi.
L'utilizzo di .reshape(-1, 1) è particolarmente utile nell'ambito del machine learning quando è necessario rimodellare un array 1D in un array 2D con una sola colonna. In questo caso, il numero di righe corrisponde al numero di elementi (calcolato automaticamente).
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)
L'array rimodellato viene memorizzato come array 2D con 5 righe e 1 colonna, avente la forma (5, 1). Al contrario, l'array 1D iniziale ha la forma (5,), che è una tupla con un solo elemento. Per qualsiasi array 1D, la forma è sempre (n,), dove n rappresenta il numero di elementi.
numpy.reshape()
La funzione reshape() in NumPy è identica al metodo .reshape(), ma occorre passare un array come primo argomento. Per il parametro shape, è possibile fornire una tupla di interi oppure un singolo intero, ad esempio: 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
Hai un array sales_data_2021 con dati di vendita trimestrali simulati per due prodotti nel 2021. I primi 4 elementi rappresentano le vendite trimestrali del primo prodotto, mentre gli ultimi 4 elementi rappresentano le vendite trimestrali del secondo prodotto.
- Utilizzare il metodo appropriato di
sales_data_2021per rimodellarlo in un array 2D. - La prima riga deve contenere le vendite trimestrali del primo prodotto.
- La seconda riga deve contenere le vendite trimestrali del secondo prodotto.
Soluzione
Grazie per i tuoi commenti!
single