求和python中的bin范围

时间:2011-04-13 22:28:13

标签: python numpy

我有一个形状为numpy的数组:

In: imar.shape 
Out: (21, 77, 10000)

我希望在最后一个轴上有一个分箱总和,每个箱子包含20个项目。

我现在这样做的方式是:

np.sum(  imar.reshape([-1,500,20]), axis=2 ).reshape(imar.shape[:2])

它很快,但如果我得到重塑错误的参数,似乎容易出错。有更好的方法吗?

我看过np.digitize,histogram,bincount和其他一些,但这些是基于价值的;我希望总结一组范围。

1 个答案:

答案 0 :(得分:1)

你有正确的方法。我不久前问了一个类似的问题:

How can I efficiently process a numpy array in blocks similar to Matlab's blkproc (blockproc) function

处理重塑有几种方法。如果你小心并且写了一个函数来做它,那你就没事了。当然,如果输入矩阵不是块大小的整数倍,则需要确保修剪输入矩阵。