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] += yx = x.at[idx].subtract(y)x[idx] -= yx = x.at[idx].multiply(y)x[idx] *= yx = x.at[idx].divide(y)x[idx] /= yx = 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)