Python 83

numpy array 구조를 image로 저장하기

이미지를 호출하기 위해서는 다음과 같은 패키지가 필요하다. from PIL import Image import numpy as np 이미지를 호출하고, 이를 np.array로 변환하면 28*28 이미지는 28*28*1 차원을 가지는 array가 될 것이다. 마지막 1은 channel을 의미하며, channel이 3인 경우 RGB 컬러 이미지를 의미한다. IMG_DIR = f'../datasets/images' img_path = os.path.join(IMG_DIR, file_name + '.jpg') img = np.array(Image.open(img_path)) 위 코드는 이미지가 저장된 경로에 접근해 jpg 파일을 호출하는 코드다. 호출된 코드는 아래와 같은 구조를 가지고 있다. array 구조를..

Python 2022.06.01

array와 asarray의 차이

numpy를 사용하는 코드를 참고하다 보면 array를 사용하는 경우와 asarray를 사용하는 경우를 볼 수 있다. 그렇다면 어떤 경우에 array를 쓰고, asarray를 쓰는 것일까? 구조적으로 보면 array와 asarray는 동일하다. 다만, array의 경우 copy=True가 기본값이지만, asarray의 경우 copy=False가 기본값이다. array를 다른 변수에 할당하고 원본을 변경할 경우 array의 copy본은 변경되지 않는다. 그러나 asarray의 경우에는 원본이 변경될 경우 asarray의 복사본까지 변경된다. a = np.ones([3, 4]) a_array = np.array(a) a_asarray = np.asarray(a) a[1] = 0 print(f'a_array ..

Python/Algorithm 2022.05.09

빅오, 빅오메가, 빅세타란?

Contents 백준이나 코드업 등 코딩 테스트에서 진행하는 알고리즘들에서 빅오(Big-O)라는 단어는 많이들 들어봤을 것이다. 그렇다면 빅오메가, 빅세타는 무엇일까? 먼저 빅오부터 알아보자. 빅-오(Big-O) 빅오는 코딩 테스트에서 시간복잡도를 다룰 때 주로 사용된다. 대개 최악의 경우를 의미하며, $\text{O(n)}, \text{O(n log(n)} $ 등 다양하게 존재한다. 예를 들어, 입력값 $n$에 대해서 $4n^2 + 3n + 4$ 번 만큼 계산하는 함수가 있다면, 최고차항만 고려하고 계수는 무시한다. 즉, 이때의 시간 복잡도는 $\text{O}(n^2)$이 되는 것이다. $\text{O}(1)$대부분 $\text{O}(\text{n})$을 기준으로 빠름을 나눈다. \[ \text{O}(..

Python/Algorithm 2022.04.28

[Python] ConnectionResetError (request)

크롤링을 하다 보면 아래와 같이 '원격 호스트에 의해 강제로 끊겼습니다'라는 에러를 볼 때가 있다. 이는 requests 모듈에서 url을 가지고 올 때 발생하는 오류로 header를 추가하는 방식으로 간단하게 해결이 가능하다. header는 윈도우의 경우 찾고자 하는 url에서 F12를 누르고 Network로 들어간 후 하단에 보면 'user-agent'를 복사해서 넣어주면 끝이다. url = f'target_url' headers = {'user-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'} requests.get(ur..

Python 2022.04.27

[Pytorch] Pytorch 에서 모델 요약 보기 with torchsummary

tensorflow 같은 경우에는 model.summary()를 통해서 간편하게 모델의 정보를 확인할 수 있다. 그렇다면 PyTorch에서는 불가능할까? 아니다!! Torch도 torchsummary를 지원해주고 있기에, torchsummary를 설치하면 확인할 수 있다. 확인하기에 앞서 우리는 이런 구조의 간단한 CNN을 만들 수 있을 것이다. 그런다음 아래의 코드를 실행하면 tensorflow의 model.summary()와 유사한 그림을 가지고 올 수 있다. from torchsummary import summary​ 각 layer의 output shape와 각 parameter에 대한 정보도 다 나온다. 또한 용량까지 나오니 엄청나게 좋다..! 한가지 단점이 있다면 아래와 같이 model의 inp..

Python/Pytorch 2022.04.18

[python] os, os.path로 파이썬 경로 다루기

Contents 로컬 환경에서 예제 csv 파일을 다룰 때는 본인이 위치해있는 폴더에 csv 파일을 같이 놔두고 분석을 수행하기에 경로 설정 문제를 겪을 일이 거의 없다. 하지만 협업을 진행할 때에는 사람마다 파일의 위치가 다르기에 모든 환경에서 돌아가도록 절대 경로, 상대 경로 등 경로를 제대로 지정해주어야 한다. 이번 글에서는 python 패키지 중 os, sys로 경로를 설정하는 방법에 대해서 다루어볼 것이다. os os는 경로를 조작할 때 많이 사용하는 모듈이다. os 모듈 중에서 가장 많이 사용되는 함수에 대해서 다루어보자. os.environ : 환경 확인 os.environ은 환경 변수들을 확인할 수 있는 함수이다. 환경 변수에는 JAVE_HOME, HADOOP_HOME, HOMEPATH, ..

Python 2022.04.01

[t-SNE] manifold 데이터 시각화하기

t-SNE는 차원축소 기법 중 하나다. 차원 축소 기법 중 대표적인 기법은 PCA가 있을텐데, PCA는 데이터의 형태가 선형이라는 가정하에 분석을 수행하게 된다. 그렇기 때문에 manifold 형태를 가지는 데이터에서는 성능을 발휘하기가 어렵다. 이때 사용하는 것이 바로 t-SNE이다. sklearn에서는 t-SNE와 PCA를 지원해주기에 본 글에서는 sklearn 패키지를 활용해서 시각화한다. from sklearn.manifold import TSNE from sklearn.feature_extraction.text import TfidfVectorizer newsgroups_train = fetch_20newsgroups(subset='train', remove=('headers', 'footers..

request <Response [401]>

401(Unauthorized) 에러는 client가 인증되지 않았거나 정보가 부족해 요청이 거부되는 에러를 의미한다. 클라이언트가 제대로 인증되지 않았기네 request를 정상적으로 처리할 수 없다는 것을 의미한다. API를 사용하는 경우 client의 id와 secret 을 다시 한 번 확인한 후 다시 요청한다면 에러를 해결할 수 있다. requests 함수를 사용하면 에러로 출력되고, urllib.request를 사용하면 HTTP Error 401: Unauthorized 에러가 출력된다.

Python 2022.03.11

[Python] matplotlib 시작하기

matplotlib은 파이썬에서 시각화할 때 주로 사용되는 패키지 중 하나이다. seaborn, folium 등의 다양한 패키지가 존재하지만, 가장 많이 사용되는 matplotlib에 대해서 다루어보자. 1. plt.figure() figure는 하나의 종이라고 생각하면 된다. 우리가 그림을 그리기 위해서는 종이가 필요한데, figure는 종이를 만들어주는 함수라고 보면 된다. figsize 인자를 통해 종이의 크기를 설정해주고, facecolor 인자를 통해 종이의 색을 지정해줄 수 있다. fig = plt.figure(figsize=(7, 7), facecolor = 'linen') # red plt.show() 2. plt.add_subplot() add_subplot을 통해 ax라는 변수에 sub..

반응형