【发布时间】:2015-04-10 10:33:38
【问题描述】:
说,我有一个由10 元素组成的 numpy 数组,例如:
a = np.array([2, 23, 15, 7, 9, 11, 17, 19, 5, 3])
现在我想有效地将所有高于10 的a 值设置为0,所以我会得到:
[2, 0, 0, 7, 9, 0, 0, 0, 5, 3]
因为我目前使用的是for循环,非常慢:
# Zero values below "threshold value".
def flat_values(sig, tv):
"""
:param sig: signal.
:param tv: threshold value.
:return:
"""
for i in np.arange(np.size(sig)):
if sig[i] < tv:
sig[i] = 0
return sig
考虑到10^6 元素的大数组,我怎样才能以最有效的方式实现这一目标?
【问题讨论】: