三维网格的掩蔽和直方图

2024-09-28 21:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

全部

有合理的大三维网格作为浮点数阵列,形状(nx,ny,nz)。具有类似的(相同形状)1和0的3d网格,基本上是位掩码。我想从基于位掩码的网格中选择数据,稍后用于直方图

我现在做的是

k = 0
for iz in range(0, nz):
    for iy in range(0, ny):
        for ix in range(0, nx):
            d = data[ix, iy, iz]
            b = bitmap[ix, iy, iz]
            if b > 0:
                droi[k] = d
                k += 1

hist, bins = np.histogram(droi, bins = 200, range=(0.0, dmax))

这是不合法和缓慢的。我考虑过将两个数组展平并相乘,然后在整个过程中运行直方图,但0也可能存在于数据中,所以它会改变直方图

有没有想过如何用更小的代码更快地完成它


Tags: 数据in网格forrange直方图形状ix