Python 有没有更快的方法达到同样的效果?

Python 有没有更快的方法达到同样的效果?,python,numpy,processing-efficiency,Python,Numpy,Processing Efficiency,我有以下python代码: for i, num in enumerate(num_arr): if num > threshold: num_arr[i] = threshold “num_arr”是一个由整数填充的简单数组, “阈值”可能从10到100000不等。 有没有更快的方法达到同样的效果?按位操作或类似的操作?您可以使用它。例如: num_arr = num_arr.clip(max=threshold) >>>

我有以下python代码:

    for i, num in enumerate(num_arr):
        if num > threshold:
            num_arr[i] = threshold
“num_arr”是一个由整数填充的简单数组, “阈值”可能从10到100000不等。 有没有更快的方法达到同样的效果?按位操作或类似的操作?

您可以使用它。例如:

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

看看
np.clip
np.minimum
是的,它似乎与执行时间相隔0.1秒,这很好。@DanShorlaKi:对于小型阵列,提升不会太大。通常,当您“批量”处理大量数据(如1'000、10'000+等元素的数组)时,numpy/pandas会得到回报。我发现这与np.clip数组[array>threshold]=threshold的执行时间大致相同