我有一个大型数组,想要在一些偏移处放置一个较小的数组,同时忽略较小数组中的零。什么是最好的方法呢?
我尝试了蒙面数组,但不知怎的,这很慢
mask = np.ma.masked_equal(pixels, 0, False)
output[offset_y:offset_y+tile_height,offset_x:offset_x+tile_width] = np.where(mask.mask, output[offset_y:offset_y+tile_height,offset_x:offset_x+tile_width], pixels)
然后我试了这个
np.place(output[offset_y:offset_y+tile_height,offset_x:offset_x+tile_width], pixels>0, pixels[pixels>0])
但是很慢
最快的方法是什么?
答案 0 :(得分:2)
我怀疑常规的旧逻辑索引在这里效率最高:
# make a view into output with the same dimensions as `pixels`
output_subarray = output[offset_y:offset_y+tile_height,offset_x:offset_x+tile_width]
mask = pixels != 0
output_subarray[mask] = pixels[mask]