查找并替换numpy ndarray中的特定值?

时间:2019-03-16 18:30:27

标签: python python-2.7 numpy iteration

我想遍历一个numpy ndarray,如果任何值小于X,则将其中一个替换为X。

我尝试做array_name[ array_name < X] = X,但这会替换所有小于X的值。

我可以使用for循环,但是我觉得numpy已经捆绑了一种更简洁的方法。

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

有没有办法更优雅地做到这一点?

1 个答案:

答案 0 :(得分:1)

array_name < X

返回相同的数组,但带有True或False。然后,您可以选择一个单元格为True的索引

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

在这里,您可以任意选择i