반응형

Python 411

TypeError: 'tuple' object does not support item assignment / TypeError: unhashable type: 'list' 원인, 해결법

파이썬 튜플, 리스트 관련 TypeError 디버깅 파이썬 프로그래밍 중에 튜플, 리스트 자료형과 관련하여 발생가능한 대표적인 TypeError 두 가지에 대하여 원인과 대처법을 정리해보도록 하겠습니다. TypeError: 'tuple' object does not support item assignment 튜플로 선언된 자료에 인덱싱을 통한 값 추가, 수정 등을 시도할 경우 발생하는 오류입니다. t1 = (10, 20, 30) t1[0] = 15 # TypeError: 'tuple' object does not support item assignment 발생 해당 오류가 발생한 경우, 인덱싱을 시도하려했던 자료의 type을 검사하여 혹시 튜플 자료형이 아니었는지에 대하여 확인해보시면 됩니다. 해결법은 ..

Python/Debugging 2022.04.28

[Pandas] 파이썬 데이터프레임 특정 열 추출, 행 추출(1개, 여러 개)

파이썬 판다스 원하는 열/행 가져오기 방법 간단 정리 파이썬 pandas 모듈을 이용하여 데이터프레임에서 원하는 1개의 열/행을 가져오는 방법과 여러 개의 column/row들을 동시에 추출하는 법에 대해서 간략하게 정리해보겠습니다. 이해를 돕기 위하여, 아래의 데이터프레임이 df라는 변수에 저장된 상황을 가정하겠습니다. import pandas as pd a = {'A' : [1, 2, 3, 4, 5], 'B' : [10, 20, 30, 40, 50], 'C' : [100, 200, 300, 400, 500]} df = pd.DataFrame(a, index = ['가', '나', '다', '라', '마']) df 열 1개 추출하기 대괄호 [] 1개로 해당 column의 이름을 지정해주시면 Series..

Python/Pandas 2022.04.26

파이썬 join 함수 사용법 간단 정리

Python join 함수 사용 방법 요약 및 예제 파이썬에서 리스트 혹은 튜플 내의 문자열들을 이어 붙이는 역할을 수행하는 join 함수는 다음과 같은 문법으로 사용해주시면 됩니다. '구분자'.join(문자열로만 이루어진 리스트 or 튜플) output은 input으로 들어간 리스트 혹은 튜플 내의 문자열들이 구분자로 연결된 전체 길이의 문자열 1개가 반환됩니다. 대표적으로 많이 사용되는 구분자 5가지에 대하여 join 함수를 적용해본 예제는 아래와 같습니다. # input 자료형 : 리스트 or 튜플(단, 모든 원소는 문자열 자료형이어야 함) list_ex = ['가가', '나나', '다다', '라라', '마마'] tuple_ex = ('가가', '나나', '다다', '라라', '마마') # list..

[Pytorch] GPU 여부 확인, 사용할 GPU 번호 지정, 모델 및 텐서에 GPU 할당 방법

파이토치 GPU 체크, 지정 및 할당 방법 정리 파이토치에서 GPU 사용 가능 여부 및 연결된 GPU 정보를 확인해보고 특정 GPU만 사용하도록 설정하는 방법과 모델 및 텐서에 원하는 GPU를 할당할 수 있는 방법에 대하여 정리해보도록 하겠습니다. GPU 사용 가능 여부 확인 아래의 명령어의 결과가 True로 반환되면 GPU가 연결되어 사용 가능하다는 의미입니다. import torch # GPU 사용 가능 -> True, GPU 사용 불가 -> False print(torch.cuda.is_available()) 다음과 같이 코드를 작성하면 GPU 여부에 따라서 사용할 디바이스 종류 자동 지정이 가능합니다. # GPU 사용 가능 -> 가장 빠른 번호 GPU, GPU 사용 불가 -> CPU 자동 지정 예..

Python/Pytorch 2022.04.24

파이토치 RuntimeError: grad can be implicitly created only for scalar outputs 해결법

Pytorch loss.backward() 과정 에러 디버깅 파이토치에서 모델 학습 과정 내 backporpagation을 시도하는 도중, RuntimeError: grad can be implicitly created only for scalar outputs 라는 오류 메시지가 출력되었습니다. loss.backward() # 여기서 오류 발생 오류 원인 loss.backward() 과정은 기본적으로 1개의 스칼라 데이터에 대한 역전파를 수행합니다. 그러나, loss 변수 내에는 배치 내 데이터 각각에 대한 손실 함수 점수들이 벡터 형태로 저장된 점을 확인했습니다.(아래는 3개의 데이터에 대한 loss 점수 예시입니다.) print(loss) # tensor([1.5054, 1.3475, 1.0413]..

Python/Debugging 2022.04.23

[Pytorch] 파이토치 특정 layer freeze 방법

파이토치 일부 layer의 파라미터만 freeze하기 파이토치에서 학습을 진행할 때, 특정 layer를 freeze하는 방법을 말씀드려보겠습니다. 이해를 돕기 위해 아래와 같은 매우 간단한 신경망이 있다고 가정해보겠습니다. import torch.nn as nn class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = nn.Linear(8, 4) self.fc2 = nn.Linear(4, 2) self.fc3 = nn.Linear(2, 1) def forward(self, x): return self.fc3(self.fc2(self.fc1(x))) my_net = Net() 예를 들어, 위의 신경망에서 fc2에 해당하..

Python/Pytorch 2022.04.22

[Pandas] 파이썬 피벗테이블 필터링, 정렬 및 데이터프레임 변환

판다스 pivot table 값 추출, 정렬, to dataframe 이번 글에서는 지난 시간에 다루었던 피벗테이블 생성법에 이어서 생성된 테이블 내에서 필터링, 정렬 및 데이터프레임 변환을 진행하는 방법에 대해서 다루어보도록 하겠습니다. pd.pivot_table 함수로 테이블을 생성하는 상세한 방법은 아래 링크의 이전 글을 참고하세요. [Pandas] 파이썬 피벗테이블 생성 : pd.pivot_table 함수 사용법 정리 파이썬 판다스 피벗테이블 조회 예제 파이썬 pandas 모듈의 pd.pivot_table 함수로 피벗테이블을 원하는대로 생성하는 방법을 values, index, columns, fill_value 및 aggfunc 인자의 기능을 위주로 정리해보겠습. jimmy-ai.tistory...

Python/Pandas 2022.04.21

[Pandas] 파이썬 피벗테이블 생성 : pd.pivot_table 함수 사용법 정리

파이썬 판다스 pivot_table 함수 사용 예제 파이썬 pandas 모듈의 pd.pivot_table 함수로 피벗테이블을 원하는대로 생성하는 방법을 values, index, columns, fill_value 및 aggfunc 인자의 기능을 위주로 정리해보겠습니다. 이 글은 판다스의 pd.pivot_table 함수 공식 설명 글의 내용에 기반하여 작성되었습니다. 먼저, 이해를 돕기 위하여 아래와 같이 학생들의 정보와 점수가 적혀있는 데이터프레임 df가 있다고 가정해보도록 하겠습니다. import pandas as pd import numpy as np a = {'반' : [1, 1, 1, 1, 2, 2, 2, 2], '성별' : ['남', '남', '여', '여', '남', '남', '여', '여'..

Python/Pandas 2022.04.21

[Numpy] 넘파이 자료형 종류 지정, 확인 및 변경 방법(dtype, astype)

파이썬 넘파이 배열 data type 선택, 출력 및 변환 Numpy 모듈에서 배열의 자료형을 고르고 확인할 수 있는 dtype과 데이터 타입의 종류를 바꿀 수 있는 astype에 대해서 간략하게 살펴보겠습니다. 참고로, 넘파이에서 지원하는 상세한 자료형 종류에 대한 정보가 필요하시다면 아래 링크의 공식 문서에서 확인하실 수 있습니다. Data types — NumPy v1.22 Manual Array Scalars NumPy generally returns elements of arrays as array scalars (a scalar with an associated dtype). Array scalars differ from Python scalars, but for the most part th..

Python/Numpy 2022.04.20

파이썬 리스트 내 중복 원소만 추출/중복 제거 방법 정리

list 자료형 내 중복 원소 찾기, 제거하기 파이썬의 리스트 자료형에서 2번 이상 등장한 원소들만 추출하는 방법과 중복을 제거하여 고유한 값들만 남기는 방법에 대해서 살펴보겠습니다. 리스트 내 2회 이상 등장 원소만 추출 for문을 통해 각 원소를 순회하며 처음 등장한 값인지 여부를 판별하여 이미 이전에 등장했던 원소들만 솎아내어 중복 원소만 추출이 쉽게 가능합니다. a = [1, 2, 3, 1, 2, 4, 5, 1] x = [] # 처음 등장한 값인지 판별하는 리스트 new_a = [] # 중복된 원소만 넣는 리스트 for i in a: if i not in x: # 처음 등장한 원소 x.append(i) else: if i not in new_a: # 이미 중복 원소로 판정된 경우는 제외 new_a..

반응형