Python中的多维直方图

4 投票
1 回答
6023 浏览
提问于 2025-04-16 22:42

我有一个多维的直方图

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

我需要把那些不等于零的H值打印到一个数组里,并且还想知道这些值出现的坐标或者说是箱子的编号。

我对元组不太了解。你能帮我吗?

1 个回答

5

使用 where 函数来找到 H 中非零元素的索引,然后用这个索引来获取坐标:

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

撰写回答