将向量与列表中的公共元素连接

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

我有一个向量列表,我想连接列表中具有一些公共组件的所有向量: 例如,我有:

list = [[1, 14], [3, 15], [4, 15], [5, 14], [8, 14], [9, 15], [10, 14], [11, 14]]

我想获得:

[[1, 5, 8, 10, 11, 14], [3, 4, 9, 15]]
.

我试过了

a = np.unique(list)
grouped_vectors=[]
for k in a:
    grouped_vectors = np.argwhere(np.any(list[:]==k))
    print(grouped_vectors)

我不知道这是否有意义,因为我只是得到空向量

python list numpy
1个回答
0
投票

我想我可以猜到你想要实现的想法。

您假设每对中的第二个项目是一个组的标识符,因此您希望对第二个项目相同的所有对中的第一个项目进行分组。这是我的做法。

import numpy as np
pairs = [[1, 14], [3, 15], [4, 15], [5, 14], [8, 14], [9, 15], [10, 14], [11, 14]]
coords = np.array(list(zip(*pairs))

for group_id in np.unique(coords[1]):
    grouped_vectors = coords[0][np.nonzero(coords[1] == group_id)
    grouped_vectors = np.append(grouped_vectors, [group_id])
    print(grouped_vectors)

这应该打印出来

[ 1  5  8 10 11 14]
[3 4 9 15]
© www.soinside.com 2019 - 2024. All rights reserved.