全部
有合理的大三维网格作为浮点数阵列,形状(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也可能存在于数据中,所以它会改变直方图
有没有想过如何用更小的代码更快地完成它
如果将
bitmap
转换为布尔数组,则可以使用boolean array indexing获取data
中对应于True
元素的bitmap
元素:相关问题 更多 >
编程相关推荐