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 :

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

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 :

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

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 :

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

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.

Article Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.