根据另一个数组

时间:2015-08-20 00:08:20

标签: python-2.7 subset

我有一个数组列表,例如如下:

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] 

我认为可能有一种解决方案涉及到某些方面的设置,但这是我尚未理解的问题。任何有关解决方案的建议都将受到赞赏。

1 个答案:

答案 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)