【发布时间】:2022-09-24 01:51:55
【问题描述】:
我有一张这样的桌子;
table = np.array([[ 67, 15],
[ 90, 15],
[ 92, 15],
[ 67, 25],
[138, 25],
[138, 35],
[ 62, 15],
[ 70, 25],
[ 71, 25],
[124, 35]])
如果可能的话,我想选择包含唯一值(以前从未显示过)的预定行数(目标)。如果不是,则按照相同的逻辑以相同的顺序选择。
即,如果我想选择;
2 rows: [67,15], [138,25]
3 rows: [67,15], [138,25], [124,35]
4 rows: [67,15], [138,25], [124,35] , [90,15]
5 rows: [67,15], [138,25], [124,35] , [90,15] , [67,25]
等等。
这是我的审判;
space = []
id_space = [0]
space.append(table[0,:])
target = 3
row = 1
for i in range(1,len(table)):
if not (any(np.isin(table[i,:],np.hstack(space)))):
space.append(table[i,:])
id_space.extend([i])
row = row + 1
if (row==target):
break
table[id_space]
它一直有效,直到 target = 3,但其余部分无效。顺便说一句,名为 table 的矩阵在现实中真的很大。也许还可以使用一些更快的替代方案。
提前致谢!