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.
- 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.
- 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.
- Gli ordini 'C' e 'F' non occupano alcuna quantità del layout di memoria dell'array sottostante e si riferiscono solo all'ordine di indicizzazione.
- 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]])