flopscope.numpy.ravel_multi_index
fnp.ravel_multi_index(*args, **kwargs)[flopscope source]
Converts a tuple of index arrays into an array of flat indices, applying boundary modes to the multi-index.
Adapted from NumPy docs np.ravel_multi_index
Convert multi-dimensional index to flat index.
Parameters
- multi_index:tuple of array_like
A tuple of integer arrays, one array for each dimension.
- dims:tuple of ints
The shape of array into which the indices from
multi_indexapply.- mode:{'raise', 'wrap', 'clip'}, optional
Specifies how out-of-bounds indices are handled. Can specify either one mode or a tuple of modes, one mode per index.
'raise' -- raise an error (default)
'wrap' -- wrap around
'clip' -- clip to the range
In 'clip' mode, a negative index which would normally wrap will clip to 0 instead.
- order:{'C', 'F'}, optional
Determines whether the multi-index should be viewed as indexing in row-major (C-style) or column-major (Fortran-style) order.
Returns
- raveled_indices:ndarray
An array of indices into the flattened version of an array of dimensions
dims.
See also
Examples
>>> import flopscope.numpy as fnp
>>> arr = flops.array([[3,6,6],[4,5,1]])
>>> flops.ravel_multi_index(arr, (7,6))
array([22, 41, 37])
>>> flops.ravel_multi_index(arr, (7,6), order='F')
array([31, 41, 13])
>>> flops.ravel_multi_index(arr, (4,6), mode='clip')
array([22, 23, 19])
>>> flops.ravel_multi_index(arr, (4,4), mode=('clip','wrap'))
array([12, 13, 13])>>> flops.ravel_multi_index((3,1,4,1), (6,7,8,9))
1621