Это что-то вроде того, что вы хотите? (Я предполагаю, что нет отрицательных значений.) (Изменить: но см. Комментарий Adam.Er8, чтобы снять это ограничение)
>>> arr1
array([[[1, 1, 1],
[2, 2, 2],
[3, 3, 3]],
[[4, 4, 4],
[5, 5, 5],
[6, 6, 6]],
[[7, 7, 7],
[8, 8, 8],
[9, 9, 9]]])
>>> arr2
array([[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]],
[[1, 0, 0],
[0, 1, 0],
[0, 0, 0]],
[[1, 0, 0],
[0, 0, 0],
[0, 0, 0]]])
>>> idx = arr2.sum(axis=2) == 0
>>> idx
array([[False, False, False],
[False, False, True],
[False, True, True]])
>>> arr2[idx] = arr1[idx]
>>> arr2
array([[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]],
[[1, 0, 0],
[0, 1, 0],
[6, 6, 6]],
[[1, 0, 0],
[8, 8, 8],
[9, 9, 9]]])