我有一个向量列表,我想连接列表中具有一些公共组件的所有向量: 例如,我有:
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)
我不知道这是否有意义,因为我只是得到空向量
我想我可以猜到你想要实现的想法。
您假设每对中的第二个项目是一个组的标识符,因此您希望对第二个项目相同的所有对中的第一个项目进行分组。这是我的做法。
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]