Сай, у меня есть 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]
Как я могу добиться того, что в наиболее эффективном способе, ха ving в виду большие массивы, скажем, 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 –