cupy.ravel_multi_index#
- cupy.ravel_multi_index(multi_index, dims, mode='wrap', order='C')[源代码]#
将一个索引数组元组转换为一个扁平索引数组,对多维索引应用边界模式。
- 参数:
multi_index (tuple of cupy.ndarray) – 一个整数数组的元组,每个维度对应一个数组。
dims (tuple of ints) – 索引
multi_index
应用到的数组形状。mode ('raise', 'wrap' or 'clip') –
指定如何处理越界索引。可以指定一种模式,或一个模式元组,每个索引一个模式。
’raise’ – 引发错误
’wrap’ – 环绕 (默认)
’clip’ – 裁剪到范围内
在 'clip' 模式下,通常会环绕的负索引将裁剪到 0。
order ('C' or 'F') – 确定多维索引应被视为按行主序 (C 风格) 还是按列主序 (Fortran 风格) 索引。
- 返回:
一个数组,其中包含维度为
dims
的扁平化数组的索引。- 返回类型:
raveled_indices (cupy.ndarray)
警告
当
mode == 'raise'
时,此函数可能会同步设备。注意
请注意,默认的 mode (
'wrap'
) 与 NumPy 不同。这样做是为了避免潜在的设备同步。示例
>>> cupy.ravel_multi_index(cupy.asarray([[3,6,6],[4,5,1]]), (7,6)) array([22, 41, 37]) >>> cupy.ravel_multi_index(cupy.asarray([[3,6,6],[4,5,1]]), (7,6), ... order='F') array([31, 41, 13]) >>> cupy.ravel_multi_index(cupy.asarray([[3,6,6],[4,5,1]]), (4,6), ... mode='clip') array([22, 23, 19]) >>> cupy.ravel_multi_index(cupy.asarray([[3,6,6],[4,5,1]]), (4,4), ... mode=('clip', 'wrap')) array([12, 13, 13]) >>> cupy.ravel_multi_index(cupy.asarray((3,1,4,1)), (6,7,8,9)) array(1621)