将numpy向量数组映射到字典

时间:2013-09-17 09:02:54

标签: python dictionary numpy histogram

我正在尝试映射颜色直方图,其中每个像素也作为另一个(浮点)属性alpha,来自类似大小的数组。 我想最终有一个(颜色)字典 - > (count,sum)其中count实际上是该颜色的直方图计数,sum是对应于某种颜色的alpha值的总和。

这是一个简单的python代码,可以满足我的需求(c和d长度相同,而且非常长):

for i in range(len(c)):
        if str(c[i]) in dict:
            dict[str(c[i])][0] += 1
            dict[str(c[i])][1] += alpha[i]
        else:
            dict[str(c[i])] = [0, alpha[i]]

但自然需要花费很多时间。是否有任何关于numpy等效的想法?

由于

1 个答案:

答案 0 :(得分:0)

好的,所以我最终找到了一个非常好的解决方案,使用这个答案只使用numpy: https://stackoverflow.com/a/8732260/1752591

这是根据另一个索引向量对向量求和的函数。 所以我所要做的就是给每种颜色一个id,并制作字典:

d = alpha.reshape((-1))
id = color_code_image(colormap)

v, g = sum_by_group(d, id)
count, g = sum_by_group(np.ones(len(d)), id)
avg = v/count

return dict(np.array([g, avg]).T)