說,我有一個numpy的陣列由10
元素,即:設置numpy的數組元素爲零,如果他們是到特定閾值
a = np.array([2, 23, 15, 7, 9, 11, 17, 19, 5, 3])
現在我要有效地將所有a
值高比10
到0
,所以我會得到:
[2, 0, 0, 7, 9, 0, 0, 0, 5, 3]
如何能夠做到在最有效的方式,哈哈記住大數組,例如10^6
元素?
因爲我用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
預先感謝您。
完美答案。請注意,如果您碰巧關心您可以使用的元素的絕對值:a [np.abs(a)> 10] = 0 – 2017-12-07 04:28:24