Funzione squeeze di numpy
La funzione squeeze di numpy rimuove da un array gli assi con dimensione unitaria.
np.squeeze(x)
Faccio un esempio pratico
Creo un array con due dimensioni (asse x e asse y)
>>> import numpy as np
>>> x = np.array([[1,2,3],[4,5,6]])
Per vedere il numero di dimensioni uso l'attributo shape
>>> x.shape
(2,3)
Non ci sono dimensioni unitarie perché ci sono due righe (asse x) e tre colonne (asse y).
Quindi la funzione squeeze(x) restituisce lo stesso array che indico in input
>>> np.squeeze(x)
array([[1, 2, 3],
[4, 5, 6]])
Ora creo lo stesso array ma questa volta in tre dimensioni (asse x, y, z)
>>> x = np.array([[[1,2,3],[4,5,6]]])
Da notare che in questo caso ci sono due parentesi quadre in più che racchiudono il tutto.
Digito x.shape per vedere le dimensioni dell'array
>>> x.shape
(1, 2, 3)
Ci sono sempre due righe (asse x) e due colonne (asse y) ma anche un'ulteriore dimensione uguale a uno (asse z)
In questo caso la funzione squeeze(x) restituisce un array diverso perché rimuove l'asse con dimensione unitaria ossia l'asse z
>>> np.squeeze(x)
array([[1, 2, 3],
[4, 5, 6]])
L'array in output ha due parentesi quadre in meno.
Per vedere la dimensione dell'array in output aggiungo l'attributo shape
>>> np.squeeze(x).shape
(2, 3)
L'array in output ha due righe (asse x) e due colonne (asse y).
E così via.