mlx.core.array.at

目录

mlx.core.array.at#

property array.at#

用于在给定索引处应用更新。

注意

常规的就地更新等同于赋值。例如,x[idx] += y 等同于 x[idx] = x[idx] + y。因此,对同一索引进行赋值会忽略除最后一次之外的所有更新。使用 x.at[idx].add(y) 将正确地将所有更新应用于所有索引。

array.at 语法

就地语法

x = x.at[idx].add(y)

x[idx] += y

x = x.at[idx].subtract(y)

x[idx] -= y

x = x.at[idx].multiply(y)

x[idx] *= y

x = x.at[idx].divide(y)

x[idx] /= y

x = x.at[idx].maximum(y)

x[idx] = mx.maximum(x[idx], y)

x = x.at[idx].minimum(y)

x[idx] = mx.minimum(x[idx], y)

示例

>>> a = mx.array([0, 0])
>>> idx = mx.array([0, 1, 0, 1])
>>> a[idx] += 1
>>> a
array([1, 1], dtype=int32)
>>>
>>> a = mx.array([0, 0])
>>> a.at[idx].add(1)
array([2, 2], dtype=int32)