唯一¶
唯一 - 11¶
版本¶
網域:
main
since_version:
11
函式:
False
支援層級:
SupportType.COMMON
形狀推斷:
True
此版本的運算子自版本 11 起可用。
摘要¶
尋找張量的唯一元素。當提供選用屬性 ‘axis’ 時,會傳回沿著 ‘axis’ 切片的唯一子張量。否則,輸入張量會被展平,並傳回展平張量的唯一值。
此運算子會傳回輸入張量的唯一值或切片的唯一子張量,以及三個選用輸出。第一個輸出張量 ‘Y’ 包含輸入的所有唯一值或子張量。第二個選用輸出張量 ‘indices’ 包含 ‘Y’ 元素在 ‘X’ 中首次出現的索引。第三個選用輸出張量 ‘inverse_indices’ 包含 ‘X’ 的元素在 ‘Y’ 中的對應索引。第四個選用輸出張量 ‘counts’ 包含 ‘Y’ 的每個元素在輸入中的計數。
輸出會依遞增順序排序,或選擇性地依值在輸入中首次出現的順序排序。
https://scipy-docs.dev.org.tw/doc/numpy/reference/generated/numpy.unique.html
範例 1
input_X = [2, 1, 1, 3, 4, 3]
attribute_sorted = 0
attribute_axis = None
output_Y = [2, 1, 3, 4]
output_indices = [0, 1, 3, 4]
output_inverse_indices = [0, 1, 1, 2, 3, 2]
output_counts = [1, 2, 2, 1]
範例 2
input_X = [[1, 3], [2, 3]]
attribute_sorted = 1
attribute_axis = None
output_Y = [1, 2, 3]
output_indices = [0, 2, 1]
output_inverse_indices = [0, 2, 1, 2]
output_counts = [1, 1, 2]
範例 3
input_X = [[1, 0, 0], [1, 0, 0], [2, 3, 4]]
attribute_sorted = 1
attribute_axis = 0
output_Y = [[1, 0, 0], [2, 3, 4]]
output_indices = [0, 2]
output_inverse_indices = [0, 0, 1]
output_counts = [2, 1]
範例 4
input_x = [[[1., 1.], [0., 1.], [2., 1.], [0., 1.]],
[[1., 1.], [0., 1.], [2., 1.], [0., 1.]]]
attribute_sorted = 1
attribute_axis = 1
中間資料如下所示,以便更好地理解:沿著輸入 input_x 的軸 1(形狀 = (2, 4, 2))切片有 4 個子張量
A: [[1, 1], [1, 1]],
[[0, 1], [0, 1]],
[[2, 1], [2, 1]],
[[0, 1], [0, 1]].
有 3 個唯一子張量
[[1, 1], [1, 1]],
[[0, 1], [0, 1]],
[[2, 1], [2, 1]].
已排序的唯一子張量
B: [[0, 1], [0, 1]],
[[1, 1], [1, 1]],
[[2, 1], [2, 1]].
output_Y 是由 B 建構而成
[[[0. 1.], [1. 1.], [2. 1.]],
[[0. 1.], [1. 1.], [2. 1.]]]
output_indices 是要從 B 對應到 A
[1, 0, 2]
output_inverse_indices 是要從 A 對應到 B
[1, 0, 2, 0]
output_counts
[2, 1, 1]
屬性¶
axis - INT :
(選用) 要應用唯一的維度。如果未指定,則會傳回展平輸入的唯一元素。負值表示從後面計算維度。可接受的範圍是 [-r, r-1],其中 r = rank(input)。
sorted - INT (預設值為
'1'
)(選用) 是否在傳回作為輸出之前,以遞增順序排序唯一元素。必須是 0 或 1 (預設)。
輸入¶
X (異質) - T
要處理的 N 維輸入張量。
輸出¶
介於 1 和 4 個輸出之間。
Y (異質) - T
與 ‘X’ 類型相同的張量,包含 ‘X’ 中沿著提供的 ‘axis’ 切片的所有唯一值或子張量,這些值或子張量會排序或保持與輸入 ‘X’ 中出現的順序相同
indices (選用,異質) - tensor(int64)
一個 1 維 INT64 張量,包含 ‘Y’ 元素在 ‘X’ 中首次出現的索引。當提供 ‘axis’ 時,它包含輸入 ‘X’ 上 ‘axis’ 上的子張量索引。當未提供 ‘axis’ 時,它包含展平輸入張量中的值索引。
inverse_indices (選用,異質) - tensor(int64)
一個 1 維 INT64 張量,包含 ‘X’ 的元素在 ‘Y’ 中的對應索引。當提供 ‘axis’ 時,它包含輸出 ‘Y’ 上 ‘axis’ 上的子張量索引。當未提供 ‘axis’ 時,它包含輸出 ‘Y’ 中的值索引。
counts (選用,異質) - tensor(int64)
一個 1 維 INT64 張量,包含輸入 ‘X’ 中 ‘Y’ 的每個元素的計數
類型限制¶
T 屬於 (
tensor(bool)
、tensor(complex128)
、tensor(complex64)
、tensor(double)
、tensor(float)
、tensor(float16)
、tensor(int16)
、tensor(int32)
、tensor(int64)
、tensor(int8)
、tensor(string)
、tensor(uint16)
、tensor(uint32)
、tensor(uint64)
、tensor(uint8)
)輸入可以是任何張量類型。