计算ndarray中的唯一切片[重复项]

问题描述 投票:1回答:1

我有一个带有X的3D整数张量X.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]]]
python numpy
1个回答
0
投票
# flatten your list:
flat_X = [item for sublist in X for item in sublist]

# build your unique list
unique_list = []
for element in flat_X:
    if element not in unique_list:
        unique_list.append(element)

输出:

> unique list
  [[0, 1, 2], [1, 2, 3], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8]]
© www.soinside.com 2019 - 2024. All rights reserved.