[Data]/[Numpy, Pandas]

    [Numpy] argsort()

    [Numpy] argsort()

    파이썬의 넘파이 라이브러리에는 argsort()라는 정렬함수가 있습니다. 일반적인 정렬함수와 약간 차이가 있는데요. 주어진 배열의 요소를 정렬한 후 정렬전 인덱스를 반환해 주는 것이 특징이며 오름차순이 기본값입니다. 직접 코드로 확인해 보겠습니다. import numpy as np arr = np.array([3, 1, 2, 5, 4]) print(np.argsort(arr)) >>> [1 2 0 4 3] 0 1 2 3 4 >> 인덱스 ↓ ↓ ↓ ↓ ↓ 3 1 2 5 4 >> 배열요소 정렬되면 1 2 3 4 5로 정렬이 될텐데, 그에 맞춰 인덱스도 정렬되어 1 2 0 4 3이 되어 출력됩니다. 추가) .argsort()[::-1]로 작성해 내림차순으로 정렬해 역순으로 가져올 수도 있으며 많이 사용되는 방..

    [Pandas] 판다스 2.0 버전 이상 원-핫 인코딩 표시 문제 해결

    [Pandas] 판다스 2.0 버전 이상 원-핫 인코딩 표시 문제 해결

    저의 판다스는 2.1.3 버전입니다.  23년 12월 3일 기준 최신 버전인데, 원-핫 인코딩 시 불편한(?) 문제가 생기게 됩니다. 바로 정수가 아닌 문자(bool)로 표현된다는 것 입니다."satisfaction_dissatisfied" 컬럼 부터 True or False로 표현됩니다. 이전 버전의 판다스는 이러지 않았는데 불편하다고 생각합니다. 미관상 숫자로 통일하고 싶죠. 또한 타입도 boolean타입이 됩니다. df.info()를 이용해 확인해 보았습니다. 그럴 때 방법이 있습니다.  단순합니다. "곱하기 1"을 해주면 됩니다.  이전과 다르게 "satisfaction_dissatisfied" 부분 부터 정수로 변한 것이 보이시나요? True or False가 1 or 0으로 변경되었습니다. d..

    [Pandas] axis=0, axis=1에 관하여

    [Pandas] axis=0, axis=1에 관하여

    aixs=0, axis=1 이 헷갈려 정리하는 김에 포스팅을 하게 되었습니다.axis=0은 행, axis=1은 열입니다.   연산 과정일 때결론부터 말하면 연산시 행은 책의 높이이고 열은 책을 담는 서랍인데 axis=0은 행 방향(가로 방향)으로 동작하는데 가로 방향인 행들이 쌓이게 되면 세로 방향으로 쌓이게 됩니다. 책이 위로 쌓아지는 것과 같다고 생각합니다. aixs=1은 열 방향(세로 방향)으로 동작하는데 연산시 세로 방향인 열들이 쌓이게 되면 가로 방향으로 움직이게 됩니다. 서랍이 옆으로 들어나는 것 같다고 생각합니다.   arr = {'a' : [1, 2, 3], 'b' : [4, 5, 6], 'c' : [7, 8, 9], 'd' : [10, 11, 12]}tmp = ..

    [Pandas] groupby 2.0 version 이후

    [Pandas] groupby 2.0 version 이후

    23년에 출시된 판다스 2.0 버전 이후부터는 groupby()를 실행할 때 mean(), sum() 과 같은 함수를 함께 사용하면 제약이 따른다.  어떠한 제약이냐면 윈도우 함수를 실행할 때 데이터 프레임에 문자열로 이루어진 컬럼이 섞여 있으면 오류를 반환한다.  그래서 판다스를 삭제 후 1.5.3 버전으로 재설치를 해주었다.pip3 uninstall pandas  pip3 uninstall numpy  # 판다스 설치 시 특정 버전 지정pip3 install pandas==1.3.5  넘파이도 세트로 설치된 것을 확인할 수 있다.

    [Numpy] 넘파이 랜덤 함수 정리

    사용하기 앞서 모듈 임포트 해줍시다. import numpy as np 1. rand() np.random.rand() >>> 0.6870391505824806 매개변수를 입력하지 않으면 [0, 1) 사이에서 랜덤한 하나의 숫자가 생성됩니다. np.random.rand(10) >>> array([0.65808258, 0.11701172, 0.79971791, 0.12323258, 0.69853063, 0.41614537, 0.51385073, 0.90329801, 0.88988373, 0.81785631]) 한 자리 매개변수 10을 입력하면 [0, 1) 사이의 랜덤 값 10개가 리스트로 묶여 출력됩니다. # 10행 1열의 랜덤 행렬 생성 np.random.rand(10, 1) >>> array([[0.5..

    [Pandas] 판다스 csv, sort_values(), by, ascending, 통계량 계산

    1. CSV파일 생성하기  Q. 학번, 학점을 기준으로 학번은 1~100000까지 sequential하게 하고 점수는 0~100의 값을 랜덤으로 작성하기import randomdata = {'학번': [i for i in range(1, 100001)], '학점': [random.randint(0, 100) for _ in range(100000)]} #1df = pd.DataFrame(data) #2df.to_csv('my_file.csv', index=False, encoding='cp949') #3  #1 : 각 조건에 맞는 컬럼을 '학번', '학점'으로 생성하고 1~100000까지, 학점 0~100까지 100000번 반복하여 리스트 컴프리핸션을 이용해서 생성 random.randin..