gpt4 book ai didi

python - 计算 ndarray 中的唯一切片数

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:28 25 4
gpt4 key购买 nike

我有一个 3D 整数张量 XX.shape=(m, n, k)

我想招待X作为(m, n)矩阵的条目为 k大小的整数向量并计算每行中有多少个这样的唯一条目。例如

>>> X
array([[[0, 1, 2],
[0, 1, 2],
[1, 2, 3],
[1, 2, 3]],
[[3, 4, 5],
[4, 5, 6],
[5, 6, 7],
[6, 7, 8]]])
>>> X.shape
(2, 4, 3)

>>> count_unique(X)
[2, 4]

因为张量的第一行有 2 个唯一向量,第二行有 4 个

返回实际唯一向量的奖励积分,例如

>>> get_unique(X)
[[[0, 1, 2], [1, 2, 3]],\
[3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8]]]

我对第一个问题的解决方案(部分矢量化)

count_unique = lambda X: [len(np.unique(row, axis=0)) for row in X]

最佳答案

unique_list = []
for sublist in X:
tmp_unique_list = []
for element in sublist:
if element not in tmp_unique_list:
tmp_unique_list.append(element)
unique_list.append(tmp_unique_list)

输出:

> unique list
[[[0, 1, 2], [1, 2, 3]], [[3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8]]]

还有计数:

> [len(elem) for elem in unique_list]
[2, 4]

关于python - 计算 ndarray 中的唯一切片数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58303497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com