在python中查找索引和更改值的最佳方法

时间:2017-07-02 11:53:02

标签: python numpy time-complexity

我有一个numpy.ndarray X.我想找到X中X>阈值的所有位置,然后X =阈值。

这样做的最便宜的方式(就时间复杂性而言)是什么?我需要运行这个程序数百万次。谢谢!

2 个答案:

答案 0 :(得分:0)

据我所知,您可以使用numpy索引来替换大于某个阈值的所有元素。

虽然,我不确定这是最快的方式。

threshold = 10 # for example
some_array[some_array > threshold] = threshold

答案 1 :(得分:0)

尝试numpy.where:

    from numpy import where

    Y  = where( X> treshold, threshold,X)

where以及ufunc-way中的if语句 where(condition,if True,else)