반응형

Python 411

[Pandas] 데이터프레임에서 열/행/그룹별/전체 최댓값, 최솟값 구하기(df.max(), df.min())

파이썬 판다스 max, min 탐색 방법 예제 파이썬에서 판다스 모듈을 활용하여 최댓값과 최솟값을 찾는 방법들을 특정 컬럼, 특정 row, 그룹별, 그리고 데이터프레임 전체에 대하여 예시를 들면서 다루어보도록 하겠습니다. 이해를 돕기 위하여, 아래와 같이 학생들의 과목별 점수가 담긴 데이터프레임 df를 가정하고 최댓값, 최솟값을 구하는 예시를 살펴보겠습니다. import pandas as pd a = {'이름' : ['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'], '반' : ['A', 'A', 'A', 'B', 'B', 'B'], \ '국어' : [70, 95, 80, 60, 75, 90], '영어' : [80, 85, 75, 90, 65, 70], '수학' : [100, 8..

Python/Pandas 2022.05.23

[Pandas] 데이터프레임에서 가장 많이(또는 적게) 등장한 값, 횟수 찾기

파이썬 판다스 최빈값, 등장 횟수 추출 방법 판다스 모듈을 이용하여 파이썬 데이터프레임에서 가장 많이 혹은 적게 등장한 값과 해당 값의 등장 횟수를 추출하는 방법을 정리해보도록 하겠습니다. 이해를 돕기 위하여, 아래와 같은 간단한 데이터프레임 df를 예시로 들어 설명하겠습니다. import pandas as pd a = {'A' : ['가', '가', '가', '나', '나', '다'], 'B' : [10, 5, 3, 5, 5, 8]} df = pd.DataFrame(a) df 1. value_counts를 이용한 방법 먼저, 각 값의 등장 횟수를 세어주는 value_counts를 이용하여 최빈값을 추출할 수 있습니다. A열을 기준으로 value_counts를 적용한 결과는 다음과 같습니다. df.val..

Python/Pandas 2022.05.23

파이썬 2차원 배열 선언, 값 추출/변경, 정렬(feat. 리스트, 넘파이 배열)

Python 2차원 array 다루기 예제(리스트 vs np.array) 파이썬에서 행렬 형태의 2차원 배열을 선언해보고 값을 추출/변경하며 내부 배열을 기준으로 정렬하는 방법들에 대해서 리스트를 활용한 방법과 Numpy array를 활용한 경우로 나누어 다루어보도록 하겠습니다. 1. 리스트를 활용한 2차원 배열(이중 리스트) 2차원 리스트 배열 선언 리스트에서는 2차원 배열을 선언할 때, 이중 for문을 사용하는 것이 가장 편리합니다. 바깥 for문에서 내부 배열의 리스트를 추가해주고 안쪽 for문에서는 각 내부 배열에 새로운 값을 추가해주는 방식입니다. 참고로, 각 내부 배열의 원소 개수가 모두 같지 않아도 됩니다. 모든 원소가 0인 4 * 3 크기의 배열 선언 예시는 아래와 같습니다. arr = [..

[Pandas] 파이썬 데이터프레임 행/열 복사(복제) 방법

파이썬 판다스 row/column 복사하기 파이썬 판다스 모듈에서 데이터프레임의 특정 행, 열을 복제하는 방법에 대해서 정리해보도록 하겠습니다. 예시로, 아래의 데이터프레임이 df라는 변수에 저장된 상황을 가정하고 결과를 살펴보겠습니다. import pandas as pd a = {'A' : [111, 222, 333, 444, 555, 666], 'B' : ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']} df = pd.DataFrame(a) df 행 1개 복제 행 1개를 복사하여 맨 아래의 위치에 붙이는 방법은 df.loc[인덱스]를 이용하여 행 1개를 가져온 뒤, df.append를 사용하여 맨 뒤의 위치에 복제된 행을 이어 붙이면 됩니다. 2번 인덱스에 해당하는 행을 ..

Python/Pandas 2022.05.20

파이썬에서 모듈의 코드, 저장 경로와 내장 함수의 코드를 확인하는 방법

Python 라이브러리 코드/py 파일 위치, 내장 함수 코드 확인 파이썬에서 import한 모듈의 소스 코드와 코드 파일이 저장된 경로를 확인하고 내장 함수의 소스코드(파이썬 구현 코드)를 확인할 수 있는 방법을 살펴보도록 하겠습니다. 모듈 소스 코드 확인 : inspect.getsource() inspect 라이브러리의 getsource 함수를 통하여 모듈의 소스 코드를 살펴볼 수 있습니다. 만일, 해당 모듈의 설치가 필요하다면 !pip install inspect 명령어를 통하여 설치해주세요. 예시로, random 라이브러리의 소스 코드를 출력하는 예시 코드는 아래와 같습니다. import inspect import random codes = inspect.getsource(random) print..

Python/Utils 2022.05.20

[Pandas] 파이썬 데이터프레임 값 변경/대체 방법 정리

파이썬 판다스 값 바꾸기, 수정 방법 예제 Pandas 라이브러리의 데이터프레임에서 원하는 부분의 값을 변경, 대체하는 여러 가지 방법들을 정리해보도록 하겠습니다. 이해를 돕기 위하여, 아래의 데이터프레임을 예시로 값이 대체된 결과를 보여드리겠습니다. (앞의 코드 수행 결과에 누적된 변경 결과를 첨부할 예정이니 참고해주세요.) import pandas as pd a = {'A' : [1, 2, 3, 4, 5, 6], 'B' : [10, 20, 30, 40, 50, 60], 'C' : [100, 200, 300, 400, 500, 600]} df = pd.DataFrame(a) df 값 1개만 변경 가장 간단한 경우로 원하는 값 1개를 수정하는 예시를 먼저 살펴보겠습니다. df.loc[행의 인덱스, 열 이..

Python/Pandas 2022.05.18

파이토치에서 모델 학습이 되지 않는 경우 원인 정리(파라미터가 그대로인 경우)

Pytorch gradient가 흐르지 않는 경우 원인과 해결법 파이토치 모듈을 이용하여 모델을 학습하는 과정에서 train 과정이 진행되는 것처럼 보여도 실제로는 파라미터가 업데이트되지 않고 학습이 안되는 경우가 있습니다. 이번 글에서는 제가 겪었던 원인을 바탕으로 모델 학습이 되지 않을 때 의심할만한 원인 3가지 정도를 간략하게 정리해보도록 하겠습니다. 1. 모델의 layer freeze 여부 체크 모델의 각 layer의 requires_grad 속성을 확인하여 해당 값이 True로 설정되어있는지를 확인해야 합니다. 이를 확인할 수 있는 방법의 코드는 아래와 같습니다. # 각 layer의 requires_grad가 True인지 확인 for param in model.parameters(): print..

Python/Debugging 2022.05.17

파이썬 소요 시간 측정 방법 : time.time() 활용과 %timeit

파이썬에서 실행 시간을 재는 방법 파이썬에서 코드의 실행 시간을 측정하는 대표적인 두 가지 방법으로 time.time()과 timeit 모듈의 %timeit을 사용하는 경우에 대해서 각각 살펴보겠습니다. time.time() 활용 시간 측정 time 모듈의 time 함수는 현재 시각을 초 단위로 알려주기에 시작 시간과 끝 시간의 시각을 기록하여 이 둘 간의 차이를 구하면 소요 시간이 측정됩니다. import time start = time.time() # 시작 시간 기록 # 원하는 코드 실행 for i in range(10 ** 8): pass end = time.time() # 끝 시간 기록 # 소요 시간 출력(초 단위) print(end - start) # 2.647819757461548 %timei..

파이썬 lambda 이용 함수 선언 예제 : 인자/return 값 여러개, 기본 값 지정, if문 활용 등

파이썬 lambda 사용법 정리 파이썬에서 lambda를 이용하여 함수를 만드는 예제들을 정리해보며 기본적인 사용법과 인자나 반환 값이 여러개인 케이스, 기본 값을 지정하고 싶은 경우, 조건문을 포함하고 싶은 케이스 등에서 lambda를 활용하는 방법을 살펴보겠습니다. lambda 기본 사용 케이스 lambda의 기본적인 사용법은 lambda 사용할 변수 : 반환할 값 형태의 문법입니다. 이해를 돕기 위해 숫자 1개를 받아 2배를 취한 값을 돌려주는 함수 func1을 생각해보겠습니다. lambda를 이용하여 다음와 같이 함수를 작성할 수 있습니다. func1 = lambda x : 2 * x a = func1(5) # 10 b = func1(-3.5) # -7 여기서 lambda a : 2 * a 처럼 ..

[Numpy] 파이썬 단위행렬 함수 np.eye(), 역행렬 함수 LA.inv()

파이썬 넘파이 단위행렬, 역행렬 함수 Numpy 라이브러리에서 단위행렬을 손쉽게 설정할 수 있는 np.eye()와 역행렬을 구하여 반환받을 수 있는 LA.inv() 혹은 np.linalg.inv()에 대해서 다루어보겠습니다. 단위행렬 함수 : np.eye 기본적으로 np.eye(n) 형태로 n * n 사이즈(n은 정수)의 단위행렬을 생성할 수 있습니다. import numpy as np np.eye(4) ''' array([[1., 0., 0., 0.], [0., 1., 0., 0.], [0., 0., 1., 0.], [0., 0., 0., 1.]])''' np.eye 내에 dtype 인자를 설정하여 배열 내 값들의 자료형을 지정할 수 있습니다. np.eye(5, dtype = int) ''' array..

Python/Numpy 2022.05.15
반응형