Appiattimento degli Array
Appiattire un array significa convertirlo da un array multidimensionale in un array 1D, essenzialmente srotolando il suo contenuto.
Questa operazione è utile quando è necessario elaborare gli elementi di un array uno per uno o quando si desidera rendere i dati più adatti a determinati algoritmi.
Ci sono tre opzioni possibili per appiattire in NumPy:
- Utilizzando il metodo
ndarray.reshape(-1)
o la funzionenumpy.reshape(array, -1)
; - Utilizzando il metodo
ndarray.ravel()
o la funzionenumpy.ravel(array)
; - Utilizzando il metodo
ndarray.flatten()
.
reshape(-1)
Il metodo .reshape(-1)
o la funzione reshape(array, -1)
restituirà un array appiattito contiguo con lo stesso numero di elementi.
Come abbiamo già menzionato nel capitolo precedente, -1
calcola automaticamente la dimensione della dimensione basandosi sulla dimensione originale dell'array. Poiché passiamo solo un singolo intero per shape
, viene restituito un array 1D con lo stesso numero di elementi.
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}')
Il metodo .reshape()
o la rispettiva funzione restituisce una vista dell'array originale, quindi qualsiasi modifica apportata all'array rimodellato influenzerà anche l'array originale.
Usare flattened_array = np.reshape(array_2d, -1)
può essere utilizzato invece di chiamare il metodo.
ravel()
Il metodo ndarray.ravel()
o la funzione numpy.ravel(array)
funziona allo stesso modo di reshape(-1)
e restituisce anche una vista dell'array originale:
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)
può essere utilizzato invece di chiamare il metodo.
ndarray.flatten()
Nel caso in cui si desideri una copia dell'array originale, non una vista, è possibile utilizzare il metodo .flatten()
:
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}')
Nota
Puoi sempre copiare una vista di un array per creare un oggetto separato e modificare questa copia senza influenzare l'array originale.
Swipe to start coding
-
Usa correttamente il metodo
.flatten()
per appiattireexam_scores
e memorizza il risultato inexam_scores_flattened
. -
Usa correttamente il metodo
.reshape()
per appiattireexam_scores
e memorizza il risultato inexam_scores_reshaped
. -
Usa il metodo
.ravel()
per appiattireexam_scores
e memorizza il risultato inexam_scores_raveled
. -
Tra i tre array appiattiti creati, scegli quello che è una copia dell'array originale, non una vista, e assegna
100
al suo primo elemento (usa l'indicizzazione positiva).
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
Appiattimento degli Array
Scorri per mostrare il menu
Appiattire un array significa convertirlo da un array multidimensionale in un array 1D, essenzialmente srotolando il suo contenuto.
Questa operazione è utile quando è necessario elaborare gli elementi di un array uno per uno o quando si desidera rendere i dati più adatti a determinati algoritmi.
Ci sono tre opzioni possibili per appiattire in NumPy:
- Utilizzando il metodo
ndarray.reshape(-1)
o la funzionenumpy.reshape(array, -1)
; - Utilizzando il metodo
ndarray.ravel()
o la funzionenumpy.ravel(array)
; - Utilizzando il metodo
ndarray.flatten()
.
reshape(-1)
Il metodo .reshape(-1)
o la funzione reshape(array, -1)
restituirà un array appiattito contiguo con lo stesso numero di elementi.
Come abbiamo già menzionato nel capitolo precedente, -1
calcola automaticamente la dimensione della dimensione basandosi sulla dimensione originale dell'array. Poiché passiamo solo un singolo intero per shape
, viene restituito un array 1D con lo stesso numero di elementi.
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}')
Il metodo .reshape()
o la rispettiva funzione restituisce una vista dell'array originale, quindi qualsiasi modifica apportata all'array rimodellato influenzerà anche l'array originale.
Usare flattened_array = np.reshape(array_2d, -1)
può essere utilizzato invece di chiamare il metodo.
ravel()
Il metodo ndarray.ravel()
o la funzione numpy.ravel(array)
funziona allo stesso modo di reshape(-1)
e restituisce anche una vista dell'array originale:
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)
può essere utilizzato invece di chiamare il metodo.
ndarray.flatten()
Nel caso in cui si desideri una copia dell'array originale, non una vista, è possibile utilizzare il metodo .flatten()
:
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}')
Nota
Puoi sempre copiare una vista di un array per creare un oggetto separato e modificare questa copia senza influenzare l'array originale.
Swipe to start coding
-
Usa correttamente il metodo
.flatten()
per appiattireexam_scores
e memorizza il risultato inexam_scores_flattened
. -
Usa correttamente il metodo
.reshape()
per appiattireexam_scores
e memorizza il risultato inexam_scores_reshaped
. -
Usa il metodo
.ravel()
per appiattireexam_scores
e memorizza il risultato inexam_scores_raveled
. -
Tra i tre array appiattiti creati, scegli quello che è una copia dell'array originale, non una vista, e assegna
100
al suo primo elemento (usa l'indicizzazione positiva).
Soluzione
Grazie per i tuoi commenti!
Awesome!
Completion rate improved to 3.7single