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