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