全部
具有合理的大型3d网格作为NumPy浮点数组,形状为(nx,ny,nz)。具有相似的(相同形状)1s和0s的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,因此它将改变直方图。
有人在想如何以更小的代码更快地完成它?
答案 0 :(得分:1)
如果将base64_encode( $access_token ),
转换为布尔数组,则可以使用boolean array indexing获取与bitmap
中的data
元素相对应的True
元素:
bitmap