본문 바로가기

전체 글

(41)
[Python] 조건에 해당하는 array 값 변경 dataframe 보다 numpy 배열이 훨씬 빠르기도 하고, 딥러닝 모델의 input을 위해 array로 변환하여 처리해야 하는 일이 많다. 데이터프레임에서 조건에 맞는 행을 필터링해서 값을 변경하는 것처럼 numpy 배열에서도 조건에 맞는 원소를 변경하려면 어떻게 해야 할까? 1) np.where 절로 조건에 해당하는 인덱스를 가져오기 # 예시로 사용할 배열 생성 arr = np.array([[0.1, 0.6, 0.3, 0.8, 0.2], [0.7, 0.4, 0.9, 0.2, 0.5], [0.3, 0.2, 0.6, 0.7, 0.1], [0.8, 0.1, 0.5, 0.4, 0.9]]) # 2번 열과 4번 열에서 0.5를 초과하는 값의 인덱스 가져오기 indices = np.where(arr[:, [2,..
[Python] min-max 벗어난 값을 min, max값으로 대체하기 일반적으로 데이터 정규화를 위해 min-max scaling을 많이 사용한다. 하지만 min-max scaling의 단점은 기준이 scaling이 데이터의 min 값과 max값을 기준으로 이루어지기 때문에 아래와 같은 단점을 갖는다. ① 이상치에 영향을 많이 받는다. ② 운영 시 min, max값이 넘는 값이 유입되면 에러가 발생한다. 이상치는 min-max scaling 하기 전 제거하고 scaling을 하면 어느 정도 해결할 수 있으나 운영 상에서 기존 데이터 범위 외 데이터가 새롭게 들어올 경우는 코드를 추가해 미리 대비를 해야 한다. min-max값 범위 외 데이터가 유입되는 경우에 min-max scaling 결과의 예상 범위인 0~1을 넘는 데이터가 생겨나는데 이 때, np.maximum과 n..
알고리즘 성능 평가 방법 - 빅오 표기법 알고리즘의 성능을 어떻게 평가할까? 알고리즘은 문제를 해결하는 절차, 방법을 의미한다. 그렇다면 어떻게 문제를 해결해야 좋다고 말할 수 있을까? 바로 문제를 올바르게 해결했는지와 빠르게 해결했는지이다. 그렇기에 코딩테스트에서도 제시된 input을 넣었을 때 예상되는 output을 나타내는지로 정확도를 평가하고 제시된 시간과 메모리 안에서 값이 산출되는지로 효율성을 평가한다. 즉, 알고리즘의 실행시간이 짧고 메모리를 적게 사용하는 것이 좋은 알고리즘이라 말할 수 있다. 하지만 알고리즘의 성능을 평가할 때 실행시간을 기준으로 평가하기는 어렵다. 실행시간이 알고리즘이 돌아가는 환경에 따라서 다르게 나타나기 때문이다. 알고리즘이 실행되는 하드웨어 성능에 따라 달라질 수 있으며 어떤 프로그래밍 언어를 사용하는 지..