특정 임계 값 내에있는 거대한 파이썬 ndarray의 값을 0으로 바꾸고 싶습니다. [-0.1 and 0.1]
의 임계 값 안에 말하십시오. 가장 효율적인 방법은 무엇입니까? 이것은 상당히 큰 배열 :특정 임계 값을 만족시키는 파이썬 ndarray의 값 바꾸기
>>>np.shape(np_w)
shape=(1, 1, 1024, 1024) dtype=float32
나는 우리가 matlab에의 ismember
여기이없는 알고 있지만, NumPy와 문서를 검색, 나는 np.in1d
및 np.isin
을 발견했다. 내 솔루션은 지금까지 좋은 모양과 속도를하지 않습니다
import numpy as np
Threshhold=X
res=np.isin(np_w,np_w[(np_w>=-Threshhold) & (np_w<=Threshhold)])
indicesToReplace=np.where(res)
np_w[indicesToReplace]=0
감사합니다, @MSeifert을. 그러니 기본적으로 당신의 접근 방식은 단 하나의 라이너 일뿐입니다. 'np.isin' 필요 없어, 그렇지? – Amir
이것은 불행히도 매우 느립니다. – Amir
Slow? 무엇에 비해? – MSeifert