numpy.squeeze() in Python

numpy.squeeze() function is used when we want to remove single-dimensional entries from the shape of an array.

Syntax : numpy.squeeze(arr, axis=None )

Parameters :
arr : [array_like] Input array.
axis : [None or int or tuple of ints, optional] Selects a subset of the single-dimensional entries in the shape. If an axis is selected with shape entry greater than one, an error is raised.

Return :
squeezed [ndarray] The input array, but with all or a subset of the dimensions of length 1 removed. This is always a itself or a view into arr.

Code #1 :



filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program explaining
# numpy.squeeze function
  
import numpy as geek
  
in_arr = geek.array([[[2, 2, 2], [2, 2, 2]]])
   
print ("Input array : ", in_arr) 
print("Shape of input array : ", in_arr.shape)  
  
out_arr = geek.squeeze(in_arr) 
  
print ("output squeezed array : ", out_arr)
print("Shape of output array : ", out_arr.shape) 

chevron_right


Output :

Input array :  [[[2 2 2]
  [2 2 2]]]
Shape of input array :  (1, 2, 3)
output squeezed array :  [[2 2 2]
 [2 2 2]]
Shape of output array :  (2, 3)

 
Code #2 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program explaining
# numpy.squeeze function
import numpy as geek
in_arr = geek.arange(9).reshape(1, 3, 3
  
print ("Input array : ", in_arr)  
out_arr = geek.squeeze(in_arr, axis = 0
  
print ("output array : ", out_arr)  
print("The shapes of Input and Output array : "
  
print(in_arr.shape, out_arr.shape)

chevron_right


Output :

Input array :  [[[0 1 2]
  [3 4 5]
  [6 7 8]]]
output array :  [[0 1 2]
 [3 4 5]
 [6 7 8]]
The shapes of Input and Output array : 
(1, 3, 3) (3, 3)

Note :

ValueError :
If axis is not None, and an axis being squeezed is not of length 1.

 
Code #3 :

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program explaining
# numpy.squeeze function
# when value error occurs
import numpy as geek
  
in_arr = geek.arange(9).reshape(1, 3, 3
  
print ("Input array : ", in_arr)  
out_arr = geek.squeeze(in_arr, axis = 1
  
print ("output array : ", out_arr)  
print("The shapes of Input and Output array : ")
   
print(in_arr.shape, out_arr.shape)

chevron_right


Output :

ValueError                                Traceback (most recent call last)
 in ()
      5 
      6 print ("Input array : ", in_arr)
----> 7 out_arr = geek.squeeze(in_arr, axis=1)
      8 print ("output array : ", out_arr)
      9 print("The shapes of Input and Output array : ")

~\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in squeeze(a, axis)
   1196     try:
   1197         # First try to use the new axis= parameter
-> 1198         return squeeze(axis=axis)
   1199     except TypeError:
   1200         # For backwards compatibility

ValueError: cannot select an axis to squeeze out which has size not equal to one


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.