У меня есть большой массив с определенными записями.Допустим, фиктивный пример:
arr = np.array([[[1.0, 2.0, 3.0],[1.5, 1.8, 3.2]],
[[1.3, 1.7, 1.9],[1.4, 1.9, 2.1]],
[[1.8, 2.2, 2.5],[2.0, 2.2, 2.8]]])
Я хотел бы знать все индексы, где записи arr
попадают в некоторый диапазон, скажем, 1.5
и 2.4
.И я хотел бы заполнить другую матрицу той же формы, что и arr
, с 1
в индексах, где значение arr
попадает в диапазон, в противном случае - 0
.То есть я хотел бы получить такую матрицу:
mask = np.array([[[0, 1, 0], [1, 1, 0]],
[[0, 1, 1], [0, 1, 1]],
[[1, 1, 0], [1, 1, 0]]])
Есть ли какой-нибудь простой numpy
трюк для этого?Я знаю, что это просто сделать с for loop
, но так как мой arr
довольно большой по размеру, я бы хотел, чтобы он был достаточно быстрым.Спасибо