CS
[Numpy] np.vectorize는 사용하지 말자.
프리랜서를꿈꾸는자
2020. 10. 20. 05:02
728x90
numpy는 기본적으로 array-wise하게 계산할 때 효율성을 얻는다.
그것을 위해서 다음과 같은 method를 활용하고자 하는데
def aux(x):
if x:
return x*np.log(x)
else:
return 0
func = np.vectorize(aux)
func(ndarray)
이 때, 사실 array-wise하게 계산하지 않는다.
따라서 large ndarray에 대해서 계산이 느리다.
이 때, 다음과 같이 aux를 수정하고 aux를 그대로 사용하자.
def aux(x):
return np.where(x > 0, x*np.log(x), 0)
aux(ndarray)
# 하 코테에서 조금만 시간있었으면 해결헀을 텐데, 너무나 짜증난다.
728x90