Python中的幅度谱

时间:2017-09-11 13:20:58

标签: python

我有一个长度超过null的给定数组,其值在some custom1'000'000(包括)之间作为整数。现在我想在x轴上绘制从0255的整数,并在y轴上绘制给定数组中相应x值的数量(称为0 in我现在的代码。)

我想到了这段代码:

255

但是我有什么方法可以更快地完成这项工作(目前需要几分钟)?我考虑过Arr,但是找不到合适的包裹。

2 个答案:

答案 0 :(得分:1)

使用numpy.bincount执行此任务(查找更多详细信息here

import numpy as np
list = np.bincount(Arr)

答案 1 :(得分:0)

虽然我完全同意您之前的答案,您应该使用标准直方图算法,但很容易大大加快您自己的实施速度。它的问题是你一遍又一遍地通过每个bin的整个输入 。只处理输入一次,然后只写入相关的bin:

会快得多
def hist(arr):
    nbins = 256
    result = [0] * nbins   # or np.zeroes(nbins)
    for y in arr:
        if y>=0 and y<nbins:
            result[y] += 1
    return result