【发布时间】:2017-12-05 20:01:00
【问题描述】:
我有一个 numpy.ndarray X。我想找到 X 中所有有 X>阈值的地方,然后执行 X=threshold。
什么是最便宜的方法(就时间复杂度而言)?我需要运行这个程序数百万次。谢谢!
【问题讨论】:
标签: python numpy time-complexity
我有一个 numpy.ndarray X。我想找到 X 中所有有 X>阈值的地方,然后执行 X=threshold。
什么是最便宜的方法(就时间复杂度而言)?我需要运行这个程序数百万次。谢谢!
【问题讨论】:
标签: python numpy time-complexity
据我所知,您可以使用 numpy 索引来替换所有大于某个阈值的元素。
虽然,我不确定这是最快的方式。
threshold = 10 # for example
some_array[some_array > threshold] = threshold
【讨论】:
试试 numpy.where:
from numpy import where
Y = where( X> treshold, threshold,X)
where 应用和 if 语句以 ufunc 方式使用 where(condition, if True, else)
【讨论】: