logo

numpy.reshape() in Python

La funzione numpy.reshape() è disponibile nel pacchetto NumPy. Come suggerisce il nome, reshape significa 'cambiamenti di forma'. La funzione numpy.reshape() ci aiuta a ottenere una nuova forma in un array senza modificarne i dati.

A volte è necessario rimodellare i dati da ampi a lunghi. Quindi, in questa situazione, dobbiamo rimodellare l'array utilizzando la funzione reshape().

Sintassi

 numpy.reshape(arr, new_shape, order='C') 

Parametri

Sono presenti i seguenti parametri della funzione reshape():

1) arr: array_like

Questa è una cosa strana. Questo è l'array di origine che vogliamo rimodellare. Questo parametro è essenziale e svolge un ruolo vitale nella funzione numpy.reshape().

funzione sottostringa Java

2) new_shape: int o tupla di interi

La forma in cui vogliamo convertire il nostro array originale dovrebbe essere compatibile con l'array originale. Se è un numero intero, il risultato sarà un array 1-D di quella lunghezza. Una dimensione della forma può essere -1. In questo caso il valore viene approssimato dalla lunghezza dell'array e dalle dimensioni rimanenti.

3) ordine: {'C', 'F', 'A'}, facoltativo

Questi parametri dell'ordine degli indici svolgono un ruolo cruciale nella funzione reshape(). Questi ordini di indice vengono utilizzati per leggere gli elementi dell'array di origine e posizionare gli elementi nell'array rimodellato utilizzando questo ordine di indice.

  1. L'ordine dell'indice 'C' significa leggere/scrivere gli elementi che utilizzano un ordine dell'indice simile a C in cui l'indice dell'ultimo asse cambia più velocemente, fino all'indice del primo asse che cambia più lentamente.
  2. L'ordine dell'indice 'F' significa leggere/scrivere gli elementi che utilizzano l'ordine dell'indice simile a Fortran, dove l'indice dell'ultimo asse cambia più lentamente e l'indice del primo asse cambia più velocemente.
  3. Gli ordini 'C' e 'F' non occupano alcuna quantità del layout di memoria dell'array sottostante e si riferiscono solo all'ordine di indicizzazione.
  4. L'ordine dell'indice 'A' significa leggere/scrivere gli elementi in un ordine dell'indice simile a Fortran, quando arr è contiguo in memoria, altrimenti utilizzare l'ordine simile a C.

ritorna

Questa funzione restituisce un ndarray. Se possibile, è un nuovo oggetto vista; altrimenti sarà una copia. Non esiste alcuna garanzia del layout della memoria dell'array restituito.

Esempio 1: ordinamento degli indici in stile C

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Produzione:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 'a' utilizzando la funzione np.arrange().
  • Abbiamo dichiarato la variabile 'y' e assegnato il valore restituito dalla funzione np.reshape().
  • Abbiamo passato l'array 'x' e la forma nella funzione.
  • Infine, abbiamo provato a stampare il valore di arr.

Nell'output, l'array è stato rappresentato come tre righe e quattro colonne.

Esempio 2: Equivalente a C ravel quindi C reshape

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

La funzione ravel() viene utilizzata per creare un array appiattito contiguo. Viene restituito un array unidimensionale che contiene gli elementi dell'input. Viene effettuata una copia solo quando è necessaria.

Java lancia un'eccezione

Produzione:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Esempio 3: ordinamento degli indici simile a Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Produzione:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 'a' utilizzando la funzione np.arrange().
  • Abbiamo dichiarato la variabile 'y' e assegnato il valore restituito dalla funzione np.reshape().
  • Nella funzione abbiamo passato l'array 'x' e la forma e l'ordine degli indici in stile Fortran.
  • Infine, abbiamo provato a stampare il valore di arr.

Nell'output, l'array è stato rappresentato come quattro righe e tre colonne.

Esempio 4: ordinamento degli indici simile a Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Produzione:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Esempio 5: si deduce che il valore non specificato sia 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 'a' utilizzando la funzione np.arrange().
  • Abbiamo dichiarato la variabile 'y' e assegnato il valore restituito dalla funzione np.reshape().
  • Abbiamo passato l'array 'x' e la forma (valore non specificato) nella funzione.
  • Infine, abbiamo provato a stampare il valore di arr.

Nell'output, l'array è stato rappresentato come due righe e cinque colonne.

Produzione:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])