Python中的多维直方图
我有一个多维的直方图
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