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

array a due dimensioni

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)

array a tre dimensioni

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

array a due dimensioni

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Array con Numpy (Python)

Alcune funzioni utili