arr = np.ones((10, 10)) * 10
mask = np.random.uniform(size=(4, 4))

def get_part(arr, shape, offs_x, offs_y):
    return arr[offs_x:offs_x + shape[0], offs_y:offs_y + shape[1]]
get_part(arr, mask.shape, offs_x=3, offs_y=4)[mask > 0.5] = 1.0
Как эффективно установить значения массива numpy, используя индексы и логическое индексирование?