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)