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)