jax.numpy.unique_all#
- jax.numpy.unique_all(x, /, *, size=None, fill_value=None)[原始碼]#
從 x 傳回唯一值,以及索引、反向索引和計數。
JAX 版本的
numpy.unique_all()
;這相當於呼叫jax.numpy.unique()
並將 return_index、return_inverse、return_counts 和 equal_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
的陣列。包含values
中x
中每個值的索引。對於 1D 輸入,values[inverse_indices]
等效於x
。
counts
:形狀為
(n_unique,)
的陣列。包含x
中每個唯一值的出現次數。
- 傳回型別:
元組
(values, indices, inverse_indices, counts)
,具有以下屬性
另請參閱
jax.numpy.unique()
:用於計算唯一值的一般函式。jax.numpy.unique_values()
:僅計算values
。jax.numpy.unique_counts()
:僅計算values
和counts
。jax.numpy.unique_inverse()
:僅計算values
和inverse
。
範例
在此範例中,我們計算一維陣列中的唯一值
>>> x = jnp.array([3, 4, 1, 3, 1]) >>> result = jnp.unique_all(x)
結果是一個具有四個具名屬性的
NamedTuple
。values
屬性包含陣列中的唯一值>>> 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)
如需
size
和fill_value
引數的範例,請參閱jax.numpy.unique()
。