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) – 用于参考的数组。