# numpy.ravel_multi_index

numpy.ravel_multi_index(multi_index, dims, mode='raise', order='C')

  Converts a tuple of index arrays into an array of flat indices, applying boundary modes to the multi-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_index` apply.

    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

  `unravel_index`

  Notes

  New in version 1.6.0.

  Examples

      >>> arr = np.array([[3,6,6],[4,5,1]])
      >>> np.ravel_multi_index(arr, (7,6))
      array([22, 41, 37])
      >>> np.ravel_multi_index(arr, (7,6), order='F')
      array([31, 41, 13])
      >>> np.ravel_multi_index(arr, (4,6), mode='clip')
      array([22, 23, 19])
      >>> np.ravel_multi_index(arr, (4,4), mode=('clip','wrap'))
      array([12, 13, 13])

      >>> np.ravel_multi_index((3,1,4,1), (6,7,8,9))
      1621