jax.numpy.unique_all#

jax.numpy.unique_all(x, /, *, size=None, fill_value=None)[原始碼]#

從 x 傳回唯一值,以及索引、反向索引和計數。

JAX 版本的 numpy.unique_all();這相當於呼叫 jax.numpy.unique() 並將 return_indexreturn_inversereturn_countsequal_nan 設定為 True。

由於 unique_all 的輸出大小取決於資料,因此此函式通常與 jit() 和其他 JAX 轉換不相容。JAX 版本新增了可選的 size 引數,必須靜態指定此引數,才能在這種情況下使用 jnp.unique

參數:
  • x (ArrayLike) – 將從中提取唯一值的 N 維陣列。

  • size (int | None | None) – 如果指定,則僅傳回前 size 個排序後的唯一元素。如果唯一元素少於 size 指示的數量,則傳回值將以 fill_value 填補。

  • fill_value (ArrayLike | None | None) – 當指定 size 且元素數量少於指示的數量時,以 fill_value 填補剩餘的條目。fill_value 預設為最小唯一值。

傳回:

  • values:

    形狀為 (n_unique,) 的陣列,其中包含來自 x 的唯一值。

  • indices:

    形狀為 (n_unique,) 的陣列。包含 x 中每個唯一值首次出現的索引。對於 1D 輸入,x[indices] 等效於 values

  • inverse_indices:

    形狀為 x.shape 的陣列。包含 valuesx 中每個值的索引。對於 1D 輸入,values[inverse_indices] 等效於 x

  • counts:

    形狀為 (n_unique,) 的陣列。包含 x 中每個唯一值的出現次數。

傳回型別:

元組 (values, indices, inverse_indices, counts),具有以下屬性

另請參閱

範例

在此範例中,我們計算一維陣列中的唯一值

>>> x = jnp.array([3, 4, 1, 3, 1])
>>> result = jnp.unique_all(x)

結果是一個具有四個具名屬性的 NamedTuplevalues 屬性包含陣列中的唯一值

>>> result.values
Array([1, 3, 4], dtype=int32)

indices 屬性包含輸入陣列中唯一 values 的索引

>>> result.indices
Array([2, 0, 1], dtype=int32)
>>> jnp.all(result.values == x[result.indices])
Array(True, dtype=bool)

inverse_indices 屬性包含 values 中輸入的索引

>>> result.inverse_indices
Array([1, 2, 0, 1, 0], dtype=int32)
>>> jnp.all(x == result.values[result.inverse_indices])
Array(True, dtype=bool)

counts 屬性包含輸入中每個唯一值的計數

>>> result.counts
Array([2, 2, 1], dtype=int32)

如需 sizefill_value 引數的範例,請參閱 jax.numpy.unique()