用numpy更新2d直方图

时间:2016-11-18 00:23:57

标签: python arrays numpy statistics

我写了一个更新2D直方图的函数,它没有我希望的那么快,

有没有办法让numpy提高这段代码的效率:

def histadd(histogram, update):
    for i in range(len(update)):
        for j in range(len(update[0])):
            histogram[i][j][update[i][j]]+=1
    return histogram

其中histogram是一个MxNx256数组,update是一个MxN整数数组,范围从0到255(包括0和255)。

1 个答案:

答案 0 :(得分:0)

我认为没有更快的方法可以做到这一点。 可以写得更短,但速度比你的版本慢:

def histadd(histogram, update):
    for a,b in np.ndindex(update.shape):
        histogram[a,b,update[a,b]]+=1
    return histogram