Найти и заменить конкретное значение в numpy ndarray? - PullRequest
1 голос
/ 16 марта 2019

Я хочу перебрать нудистый ndarray и, если какие-либо значения меньше X, заменить одно из них на X.

Я попытался сделать array_name[ array_name < X] = X, но это заменяет все значения, которыеменьше X.

Я могу использовать цикл for, но я чувствую, что, возможно, есть более краткий способ, уже связанный с numpy.

        for i in array_name:
            if i < X:
                i = X
                break

Есть ли способ сделать это более элегантно

1 Ответ

1 голос
/ 16 марта 2019
array_name < X

Возвращает тот же массив, но с True или False. Тогда вы можете просто выбрать индекс, где ячейка True

idx = np.argwhere(array_name < X)[i]
array_name[idx] = value

Здесь вы можете выбрать i произвольно

...