python中的多维直方图

时间:2011-08-02 08:32:47

标签: python numpy tuples histogram

我有一个多维直方图

   H=histogramdd((x,y,z),bins=(nbins,nbins,nbins),range=((0,1),(0,1),(0,1)))

我需要在数组中打印H的值,这些值不同于零,我还需要知道发生这种情况的坐标/箱。

我对元组不熟悉。你能救我吗?

1 个答案:

答案 0 :(得分:4)

使用where在H中找到nozeros的索引,并使用索引获取坐标:

import numpy as np
x = np.random.random(1000)
y = np.random.random(1000)
z = np.random.random(1000)
nbins = 10
H, [bx, by, bz]=np.histogramdd((x,y,z),bins=(nbins,nbins,nbins),range=((0,1),(0,1),(0,1)))

ix, iy, iz = np.where(H)

for t in zip(bx[ix], by[iy], bz[iz], H[ix,iy,iz]):
    print t