cupyx.scatter_max#

cupyx.scatter_max(a, slices, value)[source]#

将由索引指定的元素的最大值存储到数组中。

它将 value 数组中由 slices 索引的元素的最大值存储到 a 中。如果所有索引都指向不同的位置,则 scatter_max() 的操作等同于 a[slices] = cupy.maximum(a[slices], value)。如果多个元素指向同一位置,scatter_max() 会将所有这些值中的最大值存储到 a 的给定索引处,同时考虑 a 的初始元素。

请注意,就像数组索引一样,负索引被解释为从数组末尾开始计数。

另请注意,scatter_max() 的行为与 numpy.maximum.at() 完全相同。

示例

>>> import numpy
>>> import cupy
>>> a = cupy.zeros((6,), dtype=numpy.float32)
>>> i = cupy.array([1, 0, 1, 2])
>>> v = cupy.array([1., 2., 3., -1.])
>>> cupyx.scatter_max(a, i, v);
>>> a
array([2., 3., 0., 0., 0., 0.], dtype=float32)
参数:
  • a (ndarray) – 用于存储结果的数组。

  • slices – 它可以是整数、切片、省略号、numpy.newaxis、整型类数组、布尔型类数组或它们的元组。它适用于用于 cupy.ndarray.__getitem__()cupy.ndarray.__setitem__() 的切片。

  • v (array-like) – 用于参考的数组。