고성능 array 계산 라이브러리인 numpy와 통합하여, 강력한 “스프레드시트” 처리 기능을 제공하는 판다스에 대해서 좀 더 알아보자! 파이썬계의 엑셀이라고 생각하면 된다. panel data 의 줄임말인 pandas는 파이썬의 데이터 처리의 사실상의 표준인 라이브러리입니다. pandas는 파이썬에서 일종의 엑셀과 같은 역할을 하여 데이터를 전처리하거나 통계 처리시 많이 활용하는 피봇 테이블 등의 기능을 사용할 때 쓸 수 있습니다. pandas 역시 numpy를 기반으로 하여 개발되어 있으며, R의 데이터 처리 기법을 참고하여 많은 함수가 구성되어 있거 기존 R 사용자들도 쉽게 해당 모듈을 사용할 수 있도록 지원하고 있습니다. 설치하기 pip install pandas csv파일 불러오기 이미 데이터 ..
1. array 생성 np.array([1,4,5,6], float) # ndarray 타입으로 생긴다. 이미 pyTorch의 Tensor로 정의되어 있다면 바로 바꿀 수도 있다. embeddings_t = torch.Tensor(np.ones((2, 2))) embeddings_numpy = embeddings_t.numpy() numpy는 하나의 데이터 타입만 넣을 수 있는거 기억하자! 2. array 모양 받아오기, 타입 확인하기, 크기 확인하기 array.shape array.dtype array.nbytes 3. shape 바꾸기 array.reshape(8,) array.reshape(-1,2) # -1은 안쓰는것처럼 size를 기반으로 자동 설정 해준다. array.flatten() 4. i..
import torch.nn as nn import torch.nn.functional as F class Model(nn.Module): def __init__(self): super(Model, self).__init__() self.conv1 = nn.Conv2d(1, 20, 5) self.conv2 = nn.Conv2d(20, 20, 5) def forward(self, x): x = F.relu(self.conv1(x)) return F.relu(self.conv2(x)) 왜 super(Model, self).__init__()을 써줄까? you need the super() call so that the mn.Module class itself is initialised. IN Python s..
index_select >>> x = torch.randn(3, 4) >>> x tensor([[ 0.1427, 0.0231, -0.5414, -1.0009], [-0.4664, 0.2647, -0.1228, -1.1068], [-1.1734, -0.6571, 0.7230, -0.6004]]) >>> indices = torch.tensor([0, 2]) >>> torch.index_select(x, 0, indices) tensor([[ 0.1427, 0.0231, -0.5414, -1.0009], [-1.1734, -0.6571, 0.7230, -0.6004]]) >>> torch.index_select(x, 1, indices) tensor([[ 0.1427, -0.5414], [-0.4664, -..
numpy의 random 함수들을 정리해보려고 한다! numpy np.random.uniform(시작, 끝, 개수) # 균등분포 np.random.normal(시작, 끝, 개수) # 정규분포 torch torch.randn torch.randint(5, (10,5)).shape # torch.Size([10,5]) torch.randint torch.randint(5, (10,5)).shape # torch.Size([10,5]) low는 명시하지 않으면 0이고, high와 size를 넣는다.
내 시간 돌려줘용
GIL이란 Global Interpreter Lock의 약자로 파이썬 인터프리터가 한 스레드만 하나의 바이트코드를 실행 시킬 수 있도록 해주는 Lock입니다. 하나의 스레드에 모든 자원을 허락하고 그 후에는 Lock을 걸어 다른 스레드는 실행할 수 없게 막아버리는 것이다. 운영체제에서 배운 lock과 동일하다! 당연히..존나 느리다... 파이썬이 처음 개발되던 시기는 코어가 하나이던 컴퓨터가 대부분이므로 이런 선택을 했지만, 요즘 시대에는 미친듯한 단점이다..!!! PriorityQueue 모듈같은 경우에는 GIL이 아니라고 하지만, 아직까지 많은 부분에 남아있다고 한다... [출처] 파이썬 알고리즘 인터뷰(박상길) p.278