提问者:小点点

有没有更快的方法达到同样的结果?【重复】


我有这个python代码:

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

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


共1个答案

匿名用户

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

num_arr = num_arr.clip(max=threshold)

例如:

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