Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Appiattimento degli Array | Funzioni NumPy Comunemente Utilizzate
Ultimate NumPy

bookAppiattimento degli Array

Appiattire un array significa convertirlo da un array multidimensionale a un array 1D, srotolando essenzialmente i suoi contenuti.

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.

Esistono tre possibili opzioni per appiattire un array in NumPy:

  • Utilizzo del metodo ndarray.reshape(-1) o della funzione numpy.reshape(array, -1);
  • Utilizzo del metodo ndarray.ravel() o della funzione numpy.ravel(array);
  • Utilizzo del metodo ndarray.flatten().

reshape(-1)

Il metodo .reshape(-1) o la funzione reshape(array, -1) restituisce un array appiattito contiguo con lo stesso numero di elementi.

Come già menzionato nel capitolo precedente, -1 calcola automaticamente la dimensione in base alla dimensione dell'array originale. Poiché viene passato solo un singolo intero per shape, viene restituito un array 1D con lo stesso numero di elementi.

1234567
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}')
copy

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.

L'utilizzo di flattened_array = np.reshape(array_2d, -1) può essere impiegato al posto della chiamata al metodo.

ravel()

Il metodo ndarray.ravel() o la funzione numpy.ravel(array) funzionano allo stesso modo di reshape(-1) e restituiscono anch'essi una vista dell'array originale:

1234567
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}')
copy

flattened_array = np.ravel(array_2d) può essere utilizzato al posto della chiamata al metodo.

ndarray.flatten()

Nel caso in cui sia necessaria una copia dell'array originale, e non una vista, è possibile utilizzare il metodo .flatten():

1234567
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}')
copy
Note
Nota

È sempre possibile copiare una vista di un array per creare un oggetto separato e modificare questa copia senza influenzare l'array originale.

Compito

Swipe to start coding

  1. Utilizzare correttamente il metodo .flatten() per appiattire exam_scores e memorizzare il risultato in exam_scores_flattened.
  2. Utilizzare correttamente il metodo .reshape() per appiattire exam_scores e memorizzare il risultato in exam_scores_reshaped.
  3. Utilizzare il metodo .ravel() per appiattire exam_scores e memorizzare il risultato in exam_scores_raveled.
  4. Tra i tre array appiattiti creati, scegliere quello che è una copia dell'array originale, non una vista, e assegnare 100 al suo primo elemento (utilizzare l'indicizzazione positiva).

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 5
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

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?

close

Awesome!

Completion rate improved to 3.7

bookAppiattimento degli Array

Scorri per mostrare il menu

Appiattire un array significa convertirlo da un array multidimensionale a un array 1D, srotolando essenzialmente i suoi contenuti.

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.

Esistono tre possibili opzioni per appiattire un array in NumPy:

  • Utilizzo del metodo ndarray.reshape(-1) o della funzione numpy.reshape(array, -1);
  • Utilizzo del metodo ndarray.ravel() o della funzione numpy.ravel(array);
  • Utilizzo del metodo ndarray.flatten().

reshape(-1)

Il metodo .reshape(-1) o la funzione reshape(array, -1) restituisce un array appiattito contiguo con lo stesso numero di elementi.

Come già menzionato nel capitolo precedente, -1 calcola automaticamente la dimensione in base alla dimensione dell'array originale. Poiché viene passato solo un singolo intero per shape, viene restituito un array 1D con lo stesso numero di elementi.

1234567
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}')
copy

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.

L'utilizzo di flattened_array = np.reshape(array_2d, -1) può essere impiegato al posto della chiamata al metodo.

ravel()

Il metodo ndarray.ravel() o la funzione numpy.ravel(array) funzionano allo stesso modo di reshape(-1) e restituiscono anch'essi una vista dell'array originale:

1234567
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}')
copy

flattened_array = np.ravel(array_2d) può essere utilizzato al posto della chiamata al metodo.

ndarray.flatten()

Nel caso in cui sia necessaria una copia dell'array originale, e non una vista, è possibile utilizzare il metodo .flatten():

1234567
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}')
copy
Note
Nota

È sempre possibile copiare una vista di un array per creare un oggetto separato e modificare questa copia senza influenzare l'array originale.

Compito

Swipe to start coding

  1. Utilizzare correttamente il metodo .flatten() per appiattire exam_scores e memorizzare il risultato in exam_scores_flattened.
  2. Utilizzare correttamente il metodo .reshape() per appiattire exam_scores e memorizzare il risultato in exam_scores_reshaped.
  3. Utilizzare il metodo .ravel() per appiattire exam_scores e memorizzare il risultato in exam_scores_raveled.
  4. Tra i tre array appiattiti creati, scegliere quello che è una copia dell'array originale, non una vista, e assegnare 100 al suo primo elemento (utilizzare l'indicizzazione positiva).

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 5
single

single

some-alt