python - 对字典中的值执行标准偏差

标签 python dictionary python-2.7 numpy

我正在使用 Numpy 和 Python2.7,并且我正在编写一个函数来计算当我读入图像时颜色在每列像素中出现的次数(使用 PIL):

for i in range(wbmp.size[0]):
    bcount = 0
    for j in range(wbmp.size[1]):
        if wbmp.getpixel((i,j)) == 1:
            bcount = bcount + 1
    bdict[i] = bcount

字典返回为 {Column#: # of times color appears},我希望能够对字典中的所有值执行标准偏差。我需要先将它们全部放入列表中吗?还是只能从字典中提取它?

最佳答案

字典中所有值的列表可以通过 bdict.values() 获得,所以你可以这样使用:

std = np.std(bdict.values())

更快的方法是使用更多的 numpy:

img = np.array(img)
colour_mask = img == 1  # or whichever colour you want
per_col_count = colour_mask.sum(axis=0)
std = np.std(per_col_count)

colour_mask 是一个 bool 掩码,沿轴 0 对它求和,将每一列的所有 True 值相加。这势必会快很多,而且随着图像尺寸的增大,差异会越来越大。

关于python - 对字典中的值执行标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15691677/

相关文章:

python - 通过索引过滤字典中不同形状的数组

python - 找不到符号 : _BIO_new_CMS

python - Tweepy Twitter 获取特定用户的所有推文回复

python - 运行存储在列表中的各个 python import 语句

python - 字符串编码 IDNA -> UTF-8 (Python)

python - 堆叠矩阵以创建一个矩阵,其中父矩阵映射的位点作为 block 对角线

python 和 libtcod : generating terrain using perlin noise

python - 无法检查已存在的用户名谷歌应用引擎

java - 在某些情况下使用 Java Stream 计算唯一字符并验证 String

Python3 无法将字符串转换为 dict 或 json