The numpy.ravel() functions returns contiguous flattened array(1D array with all the input-array elements and with the same type as it). A copy is made only if needed.
Syntax :
numpy.ravel(array, order = 'C')
Parameters :
array : [array_like]Input array. order : [C-contiguous, F-contiguous, A-contiguous; optional] C-contiguous order in memory(last index varies the fastest) C order means that operating row-rise on the array will be slightly quicker FORTRAN-contiguous order in memory (first index varies the fastest). F order means that column-wise operations will be faster. ‘A’ means to read / write the elements in Fortran-like index order if, array is Fortran contiguous in memory, C-like order otherwise
Return :
Flattened array having same type as the Input array and and order as per choice.
Code 1 : Shows that array.ravel is equivalent to reshape(-1, order=order)
Python
# Python Program illustrating # numpy.ravel() method import numpy as geek array = geek.arrange( 15 ).reshape( 3 , 5 ) print ( "Original array : \n" , array) # Output comes like [ 0 1 2 ..., 12 13 14] # as it is a long output, so it is the way of # showing output in Python print ( "\nravel() : " , array.ravel()) # This shows array.ravel is equivalent to reshape(-1, order=order). print ( "\nnumpy.ravel() == numpy.reshape(-1)" ) print ( "Reshaping array : " , array.reshape( - 1 )) |
Output :
Original array : [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] ravel() : [ 0 1 2 ..., 12 13 14] numpy.ravel() == numpy.reshape(-1) Reshaping array : [ 0 1 2 ..., 12 13 14]
Code 2 :Showing ordering manipulation
Python
# Python Program illustrating # numpy.ravel() method import numpy as geek array = geek.arrange( 15 ).reshape( 3 , 5 ) print ( "Original array : \n" , array) # Output comes like [ 0 1 2 ..., 12 13 14] # as it is a long output, so it is the way of # showing output in Python # About : print ( "\nAbout numpy.ravel() : " , array.ravel) print ( "\nnumpy.ravel() : " , array.ravel()) # Maintaining both 'A' and 'F' order print ( "\nMaintains A Order : " , array.ravel(order = 'A' )) # K-order preserving the ordering # 'K' means that is neither 'A' nor 'F' array2 = geek.arrange( 12 ).reshape( 2 , 3 , 2 ).swapaxes( 1 , 2 ) print ( "\narray2 \n" , array2) print ( "\nMaintains A Order : " , array2.ravel(order = 'K' )) |
Output :
Original array : [[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]] About numpy.ravel() : numpy.ravel() : [ 0 1 2 ..., 12 13 14] Maintains A Order : [ 0 1 2 ..., 12 13 14] array2 [[[ 0 2 4] [ 1 3 5]] [[ 6 8 10] [ 7 9 11]]] Maintains A Order : [ 0 1 2 ..., 9 10 11]
References :
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.ravel.html#numpy.ravel
Note :
These codes won’t run on online IDE’s. Please run them on your systems to explore the working
.
This article is contributed by Mohit Gupta_OMG 😀. If you like Lazyroar and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the Lazyroar main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.