我有一个数组列表,例如如下:
L = [[1, 2, 3], [3,4,5], [1,2,3], [4,5,6]]
我还有另一个变量,它显示了这些组中的哪一个,例如:
group = [0, 0, 1, 1]
我想基于L
拆分group
,结果将是:
L_split = [[[1,2,3], [3,4,5]],
[[1,2,3], [4,5,6]]]
然而,需要以这样的方式完成,以便组中唯一值的数量可以改变。例如,群组同样可以
group = [0, 0, 1, 2]
或
group = [3, 2, 1, 0]
我认为可能有一种解决方案涉及到某些方面的设置,但这是我尚未理解的问题。任何有关解决方案的建议都将受到赞赏。
答案 0 :(得分:0)
我通过使用zip命令和预先调整大小的列表解决了这个问题。
clusterZip = zip(group, L)
clusterSubset = [list() for _ in xrange(np.unique(group))]
for row in clusterZip:
c = row[0]
v = row[1]
clusterSubset[c].append(v)