[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..