有没有更快的方法来达到相同的结果?

时间:2019-11-02 13:20:24

标签: python numpy processing-efficiency

我有这个python代码:

    for i, num in enumerate(num_arr):
        if num > threshold:
            num_arr[i] = threshold

'num_arr'是一个填充了整数的简单数组, “阈值”可能从10到100,000不等。 有没有更快的方法来达到相同的结果?按位运算还是类似的东西?

1 个答案:

答案 0 :(得分:1)

您可以使用.clip(..) [numpy-doc]。例如:

num_arr = num_arr.clip(max=threshold)

例如:

>>> a
array([14, 25,  7, 12,  2])
>>> a.clip(max=10)
array([10, 10,  7, 10,  2])