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 Comumente Usate
Numpy Definitivo

Scorri per mostrare il menu

book
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 funzione numpy.reshape(array, -1);

  • Utilizzando il metodo ndarray.ravel() o la funzione numpy.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.

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.

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:

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 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():

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

Nota

Puoi sempre 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. Usa correttamente il metodo .flatten() per appiattire exam_scores e memorizza il risultato in exam_scores_flattened.

  2. Usa correttamente il metodo .reshape() per appiattire exam_scores e memorizza il risultato in exam_scores_reshaped.

  3. Usa il metodo .ravel() per appiattire exam_scores e memorizza il risultato in exam_scores_raveled.

  4. 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

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
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?

Chieda ad AI

expand
ChatGPT

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

book
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 funzione numpy.reshape(array, -1);

  • Utilizzando il metodo ndarray.ravel() o la funzione numpy.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.

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.

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:

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 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():

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

Nota

Puoi sempre 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. Usa correttamente il metodo .flatten() per appiattire exam_scores e memorizza il risultato in exam_scores_flattened.

  2. Usa correttamente il metodo .reshape() per appiattire exam_scores e memorizza il risultato in exam_scores_reshaped.

  3. Usa il metodo .ravel() per appiattire exam_scores e memorizza il risultato in exam_scores_raveled.

  4. 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

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
Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Siamo spiacenti che qualcosa sia andato storto. Cosa è successo?
some-alt