【问题标题】:Mapping numpy array of vectors to dictionary将向量的numpy数组映射到字典
【发布时间】:2013-09-21 15:19:03
【问题描述】:

我正在尝试映射一个颜色直方图,其中每个像素也作为另一个(浮点)属性,alpha,来自类似大小的数组。 我最终希望有一个 (color) -> (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 等价物的任何想法?

谢谢

【问题讨论】:

  • 使用for i, c_i in enumerate(c)

标签: python dictionary numpy histogram


【解决方案1】:

好的,所以我最终使用这个答案找到了一个非常好的解决方案,仅使用 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)

【讨论】:

    猜你喜欢
    • 2016-03-05
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多