使用索引拆分Numpy数组

时间:2014-04-14 16:52:28

标签: python arrays numpy graph

我有3D数组

pcar=[[xa ya za]
      [xb yb zb]
      .
      .
      [xn yn zn]]

和索引数组为

[0,1,0....,2]

给出pcar中的行应该进入哪个群集,以便我可以用不同的颜色绘制它。群集的最大值为3.

输出应为

clusters[0] = [[xa ya za], [xc yc zc], ...]
clusters[1] = [[xb yb zb], ...]
clusters[2] = [..., [xn yn zn]]

我希望在图表中打印这些点,每个聚类点具有不同的颜色

2 个答案:

答案 0 :(得分:2)

据我了解,您希望生成如下所示的群集列表:

clusters[0] = [[xa ya za], [xc yc zc], ...]
clusters[1] = [[xb yb zb], ...]
clusters[2] = [..., [xn yn zn]]

使用NumPy索引很容易做到这一点。让索引数组调用indices。然后,

indices = np.asarray(indices)
num_clusters = 3
clusters = [pcar[indices==i] for i in xrange(num_clusters)]

会给你想要的结果。

答案 1 :(得分:0)

类似的东西:

indices = [0,1,0....,2]
[pcar[i][index] for i, index in enumerate(indices)]
# [xa, yb, xc, ... zn]