有没有更快的方法来达到相同的结果?
Is there a faster way to achieve the same result?
我有这个 python 代码:
for i, num in enumerate(num_arr):
if num > threshold:
num_arr[i] = threshold
'num_arr' 是一个用整数填充的简单数组,
'threshold' 可能在 10 到 100,000 之间变化。
有没有更快的方法来达到相同的结果?按位运算或类似的东西?
您可以使用 .clip(..)
[numpy-doc]。例如:
num_arr = num_arr<b>.clip(max=threshold)</b>
例如:
>>> a
array([14, 25, 7, 12, 2])
>>> a.clip(max=10)
array([10, 10, 7, 10, 2])
我有这个 python 代码:
for i, num in enumerate(num_arr):
if num > threshold:
num_arr[i] = threshold
'num_arr' 是一个用整数填充的简单数组, 'threshold' 可能在 10 到 100,000 之间变化。 有没有更快的方法来达到相同的结果?按位运算或类似的东西?
您可以使用 .clip(..)
[numpy-doc]。例如:
num_arr = num_arr<b>.clip(max=threshold)</b>
例如:
>>> a
array([14, 25, 7, 12, 2])
>>> a.clip(max=10)
array([10, 10, 7, 10, 2])