반응형

전체 글 461

파이썬 피클(pickle) 모듈로 리스트, 딕셔너리 객체 파일 저장

파이썬 피클 라이브러리 사용 방법 파이썬에서 작업을 하다가 종료를 해야할 때, 이전 작업에서 저장했던 리스트, 딕셔너리 등 객체를 저장하고 다음 작업 때 불러오기를 원하는 경우가 있을 것입니다. 여러 가지 방법으로 객체 저장을 수행할 수 있겠지만 이번 포스팅에서는 피클(pickle) 모듈로 아주 간단하게 객체를 저장하고 불러오는 방법을 말씀드리겠습니다. pickle 모듈로 파이썬 객체 저장하기 - dump import pickle list_ex = [1, 2, 'a', 'b'] dict_ex = {'a' : 1, 'b' : 2} # 저장 버전 1 with open("list.pickle","w") as f: pickle.dump(list_ex, f) # 저장 버전 2 (바이너리 파일) with open(..

Python/Utils 2021.11.11

벡터 미분 예제, 정의, 의미 (transpose는 언제 붙을까?)

머신 러닝을 공부하다보면 항상 벡터 미분이라는 개념이 등장하고, 신경망 구조의 backpropagation의 근본 원리이기 때문에 아주 중요한 개념이 된다. 다만, 일반적인 미분과 달리 의미와 정의부터 매우 생소하고, 미분 결과에서 전치(transpose)가 붙는 규칙을 이해하기 힘들어 종종 애를 먹는 경우가 있다. 이번 포스팅에서는 매우 기초적인 예제를 중심으로 벡터 미분의 의미와 트랜스포즈가 붙는 이유를 설명하려고 한다. 벡터로 미분 정의 다음과 같은 열벡터 \(x\)를 생각해보자. 일반적으로 벡터라하면 열벡터를 의미한다. $$ x = (x_1, x_2, ... , x_n)^T $$ 벡터 \(x\)와 관계를 가지는 함수 \(f(x)\)를 생각해보자. 여기서 이 함수\(f(x)\)의 출력 값은 스칼라,..

수학 2021.11.10

[Matplotlib] plt 축 제목, 차트 제목 설정 함수 - xlabel, ylabel, title (+ 한글 깨짐 해결 추가)

안녕하세요. 지난 번 matplotlib에서 x축, y축의 눈금 및 범위를 지정하는 방법에 이어, 축 제목 및 차트 제목을 설정하는 방법에 대해서 말씀드리도록 하겠습니다. 또한, 제목 설정 시 한글 깨짐을 수정하는 방법에 관해서도 같이 다루어보겠습니다. plt 축 제목 설정 함수 - xlabel, ylabel 우선 본격 설명을 진행하기 전, xlabel, ylabel, title 함수의 설정 위치에 대해서 말씀드리도록 하겠습니다. 위 사진에서 xlabel, ylabel, title이 새겨진 위치를 확인해주시면 이해가 쉬울 것으로 생각됩니다. 그럼 코드를 한번 살펴보겠습니다. import matplotlib.pyplot as plt x = [1, 2, 3, 4] y = [15, 14, 17, 19] plt..

Python/Matplotlib 2021.11.10

[Matplotlib] 코랩 한글 깨짐 해결법 (Colab plt 그래프 한글 적용)

안녕하세요. matplotlib (plt)를 코랩 환경에서 사용 중 그래프에 한글을 출력해야 할 때, 그대로 출력하면 한글 깨짐 현상이 발생하게 되는데요, 이번 포스팅에서는 이 한글 깨짐 현상을 해결하는 방법에 대해서 말씀드리도록 하겠습니다. plt 한글 깨짐 현상 우선, 이해를 돕기 위해 예시 그래프를 하나 그려보도록 하겠습니다. 다음과 같이 코드를 입력해주세요. import matplotlib.pyplot as plt x = ['가', '나', '다', '라', '마'] y = [15, 33, 28, 17, 22] plt.bar(x, y, color = 'cyan') plt.show() 아마도 warning 메시지가 잔뜩 뜨면서 위와 같이 한글 폰트가 깨져있는 것을 확인하실 수 있습니다. matplo..

Python/Matplotlib 2021.11.09

[Matplotlib] plt 축 범위 설정 함수 - xlim, ylim, axis

저번 포스팅에 이어 이번 포스팅에서는 matplotlib (plt) 라이브러리 내에서 x축과 y축의 범위를 설정할 수 있는 함수들의 사용법을 간단하게 알아보겠습니다. plt 축 범위 설정 함수 1 - xlim, ylim 축의 범위가 변경된 경우 그래프의 변화를 쉽게 알 수 있도록 삼차 함수 1개를 임의로 그려보도록 하겠습니다. 코드는 다음과 같습니다. import matplotlib.pyplot as plt import numpy as np x = np.arange(-3, 10, 0.01) y = x ** 3 - 10 * x ** 2 + 6 * x + 100 plt.plot(x, y) plt.show() $$ y = x^3 - 10x^2 + 6x + 100$$ 이라는 함수를 x축의 범위를 -3 ~ 10으..

Python/Matplotlib 2021.11.08

[Matplotlib] plt 축 눈금 설정 함수 - xticks, yticks

이번 포스팅에서 matplotlib (plt) 패키지 사용 중 그래프의 축 눈금 간격을 설정하고 이름까지 지정해볼 수 있는 방법에 대해서 알려드리도록 하겠습니다. plt 축 눈금 설정 함수 - xticks, yticks 우선 간단하게 y = 2x + 10 이라는 그래프를 그려보도록 하겠습니다. x축의 범위는 0 ~ 10까지로 설정하고 그려보겠습니다. 다음과 같은 코드를 입력해주세요. import matplotlib.pyplot as plt import numpy as np x = np.arange(1, 10, 0.01) y = 2 * x + 10 plt.plot(x, y) plt.show() 이 경우 자동으로 눈금을 x축은 2마다, y축은 2.5마다 설정해준 듯 합니다. 눈금을 x축은 1마다, y축은 5..

Python/Matplotlib 2021.11.07

백준 알고리즘 - 코딩 연습, 코딩 테스트 준비, 티어 확인

이번 포스팅에서는 파이썬, C++, Java 등 다양한 언어로 알고리즘 문제를 풀어보고 코딩 테스트까지 준비할 수 있는 백준 알고리즘 사이트에 대해서 소개해드려보겠습니다. 백준 알고리즘 우선 링크는 다음 주소와 같습니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 회원가입 및 로그인을 진행해 주신 뒤, 맨 위 텝에서 빨간색으로 표시해 드린 문제 탭의 전체 문제 메뉴를 클릭합니다. 그럼 다음과 같이 문제 목록이 뜰 텐데요. 주의할 점은 이 문제 순서는 난이도와 큰 관련이 없다는 것입니다. 다만, 문제 옆에 티어를 나타내는 깃발과 숫자 보..

Python/Utils 2021.11.07

[그래프 이론] Modularity 뜻, 계산 예시(그래프 분할 평가)

그래프 분할(Graph Partition) 다음과 같은 그래프가 있다고 가정을 해봅시다. 이제 이 그래프를 2개의 그룹으로 나누어보겠습니다. 그래프 분할을 위한 여러 알고리즘을 적용할 수 있겠지만 속마음으로 한번 나누어 보세요. 이제 두 개의 그래프가 A, B 두 가지 방법으로 나누어진 경우를 생각해보겠습니다. 두 그룹 사이 cut(주황색 선)을 지나는 edge 개수 등의 대략적인 기준이나 이 경우는 눈대중으로만 보더라도 B가 A보다는 그래프 분할이 잘 진행된 것으로 보입니다. 그래프 분할이 의미있는 상황은 예를 들어, 제가 고등학교때 만난 친구들 그룹끼리 SNS 친구 관계가 얽혀있을 것이고, 대학교 과에서 만난 친구들 그룹끼리 SNS 친구 관계가 얽혀있을 것이고 등의 관계를 생각해보면 이해가 쉬울 것입..

코랩 구글 드라이브 연동 (Colab에서 마운트 하는 방법 + 디렉토리 확인)

이번 포스팅에서는 구글 Colab에서 드라이브 내 파일을 불러오고 파이썬에서 작업한 결과 파일을 드라이브에 저장 가능하도록 Colab과 드라이브를 연동하는 방법에 대해서 다루어보도록 하겠습니다. 또한, 추가로 파일을 여는 과정에서 드라이브 내 디렉토리를 확인하고 접근하는 방법도 말씀드리겠습니다. 구글 코랩 열기 우선, 구글 드라이브 연동을 원하시는 구글 아이디로 로그인을 하신 뒤, Colab에서 새 노트를 만들어보겠습니다. 새 노트를 생성하게 되면 다음과 같은 화면이 등장하는데요, 아직 구글 서버 상의 컴퓨터를 할당받지 않은 상황이라 먼저 할당받는 작업이 필요합니다. 이를 위해서는 두 가지 방법이 있는데요. 1. 빈 셀을 실행(Ctrl + Enter 또는 Shift + Enter)하거나 2. 상단의 연결..

Python/Utils 2021.11.06

[Python] 진행시간, 진행률 표시하기 - tqdm (pandas apply에도 적용하기)

파이썬으로 코딩을 진행할 때, for문 작업이나 pandas의 apply 작업 등 반복 작업을 실행할 때, 현재 몇%가 진행되었고, 얼마나 시간이 더 소요될지에 대한 진행률, 진행시간을 알고 싶을 때가 있을 것입니다. 이번 포스팅에서는 반복 작업에 대한 진행 상황을 알려주는 tqdm 라이브러리를 소개하고 pandas의 apply 함수에도 적용할 수 있는 방법까지 알려드리도록 하겠습니다. tqdm 라이브러리 우선, 라이브러리 설치 과정은 매우 간단합니다. 콘솔창이나 아나콘다, 혹은 주피터 노트북 상에 pip install tqdm 혹은 conda install tqdm이라고 입력해주시면 됩니다. 사용법은 다음 두 코드를 비교해보시면 됩니다. j = 0 for i in range(10000000): j +=..

Python/Utils 2021.11.05
반응형