2016-04-19 2 views
3

У меня есть массив формы 512x512, который содержит числа от 0 до 100 на i-й и j-й позиции. Теперь я хочу выбрать массив [i, j] < 25 и ноль в других местах. Я пробовал с array = array[where(array<25)], который дает мне 1D массив, но я хочу 2D. Пожалуйста, помогите мне решить эту проблему.порог в 2D-массиве numpy

+0

Возможный дубликат [Набор Numpy элементов массива к нулю, если они ниже определенного порога] (https://stackoverflow.com/questions/28430904/set-numpy-array-elements-to- нулевой, если они-являются-ниже-A-специфического порог) – jdhao

ответ

3

Одно из решений:

result = (array < 25) * array 

Первая часть array < 25 дает массив той же формы, что является 1 (истина), где значения меньше 25 и 0 (False) в противном случае. Поэтапное умножение с исходным массивом сохраняет значения, которые меньше 25, и устанавливает остальное значение в 0. Это не меняет исходный массив

Другая возможность - установить все значения, равные> = 25, равными нулю в Исходный массив:

Смежные вопросы