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

'CS' 카테고리의 다른 글

(미완)[Docker] option 정리  (0) 2020.10.21
(미완)Ubuntu 명령어 정리  (0) 2020.10.21
[Numpy]np.select  (0) 2020.10.19
[Algorithm]백준, 14888, 연산자 끼워넣기  (0) 2020.10.16
[Algorithm]백준, 10819, 차이를 최대로  (0) 2020.10.16

+ Recent posts