Nói, tôi có một mảng NumPy gồm 10
yếu tố, ví dụ .:Đặt phần tử mảng NumPy bằng không nếu chúng nằm dưới một ngưỡng cụ thể
a = np.array([2, 23, 15, 7, 9, 11, 17, 19, 5, 3])
Bây giờ tôi muốn thiết lập một cách hiệu quả tất cả các a
giá trị cao hơn hơn 10
-0
, vì vậy tôi sẽ nhận được:
[2, 0, 0, 7, 9, 0, 0, 0, 5, 3]
Làm thế nào tôi có thể đạt được điều đó theo cách hiệu quả nhất, ha ving trong tâm lớn mảng, nói, 10^6
yếu tố?
Bởi vì tôi sử dụng để sử dụng for
vòng lặp, mà là rất chậm, Eg .:
# 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
Cảm ơn bạn trước.
Câu trả lời hoàn hảo. Lưu ý rằng nếu bạn tình cờ quan tâm đến giá trị tuyệt đối của phần tử bạn có thể sử dụng: a [np.abs (a)> 10] = 0 –