Ravel and Unravel With NumPy
We take a quick look at how to work with NumPy by exploring the ravel and unravel methods that come built into this popular Python framework.
Join the DZone community and get the full member experience.
Join For FreeRaveling and unraveling are common operations when working with matrices. With a ravel operation, we go from matrix coordinate to index coordinates, while with an unravel operation we go the opposite way. In this post, we will through an example of how they can be done with NumPy in a very easy way. Let's assume that we have a four-by-four matrix of dimensions and that we want to index the element (1, 1) counting from the top right corner of the matrix. Using ravel_multi_index the solution is easy:
import numpy as np
coordinates = [[1], [1]]
shape = (4, 4)
idx = np.ravel_multi_index(coordinates, shape)
print(idx)
array([5])
What if we want to go back to the original coordinates? In this case, we can use unravel_index:
np.unravel_index(idx, shape)
(array([1]), array([1]))
So now we know that the elements (1, 1) has an index of 5!
Published at DZone with permission of Giuseppe Vettigli, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments