반응형

Python 378

[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

파이썬 리스트 정렬 함수 sort()와 sorted()의 사용법 정리, 차이 비교

Python 정렬 함수 sort vs sorted 예제 파이썬에서 리스트를 단번에 정렬할 수 있는 sort와 sorted 함수에 대하여 각각의 사용법과 두 함수의 차이 비교에 관한 내용을 다루어보도록 하겠습니다. sort 함수 사용법 리스트 자료형에 대하여 list.sort() 코드 선언 후 리스트를 다시 출력해보시면 기본적으로 오름차순 정렬이 진행된 모습을 확인할 수 있습니다. list_a = [8, 1, 5, 3, 9] list_a.sort() # 이렇게만 실행하면 자동으로 정렬된 값으로 변경 print(list_a) # [1, 3, 5, 8, 9] 만일, 내림차순 정렬을 원한다면 reverse 인자를 True로 설정해주시면 됩니다. list_a = [8, 1, 5, 3, 9] list_a.sort(..

[Pytorch] 모델에 저장된 파라미터 확인, 출력 방법

파이토치에서 파라미터 값 보는법 파이토치에서 모델에 저장된 parameter의 값들을 확인하는 방법들을 살펴보겠습니다. 파라미터만 출력 : model.parameters() 이용 layer 순서대로 파라미터를 출력하려면 선언된 모델의 parameters()를 호출하여 아래와 같이 순회해주시면 됩니다. for param in model.parameters(): print(param) 각 layer에 저장된 weight와 bias 값들이 차례대로 잘 출력되는 것을 볼 수 있었습니다. layer 이름과 같이 출력 : model.named_children() 이용 만일, layer의 이름과 매칭하여 저장된 파라미터를 확인하고 싶은 경우에는 아래와 같이 named_children()을 호출하여 layer 이름과 ..

Python/Pytorch 2022.05.13

파이썬 텍스트 데이터 증강 모듈 : nlpaug

Text Augmentation 라이브러리 nlpaug 파이썬에서 텍스트 데이터를 augmentation해야할 때 유용하게 사용할 수 있는 nlpaug 모듈에 대해서 소개해보고 사용법을 간단하게 살펴보겠습니다. nlpaug에서 지원하는 텍스트 증강 종류 우선, nlpaug 라이브러리에 대한 내용이 정리된 공식 github 페이지의 링크는 아래와 같습니다. GitHub - makcedward/nlpaug: Data augmentation for NLP Data augmentation for NLP . Contribute to makcedward/nlpaug development by creating an account on GitHub. github.com 해당 페이지의 내용을 확인해보시면 텍스트 데이터뿐..

Python/NLP Code 2022.05.13
반응형