zenn.skin 무료버전 배포중!
자세히보기

전체 글 182

DataScience
[Matplotlib] 한글 폰트 설정, 글꼴 변경

Matplotlib에서 기본적으로 제공하는 폰트는 한글을 제공하지 않는다. 그러므로 한글 폰트를 적용하기 위해서는 한글을 지원하는 폰트를 설치하고 바꿔주어야 한다. import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.font_manager as fm import numpy as np def example_f(x): return x**2 x = np.arange(0,100,1) plt.xlabel('이것은 엑스축') plt.ylabel('이것은 와이축') plt.title('이것은 제목') plt.plot(x, example_f(x)) ppt 파일을 열심히 만들고 발표하는 컴퓨터에서 ㅁㅁㅁㅁ처럼 글씨가 나타나는 경우가 있다...

DataScience
[Matplotlib] 개요

※Matplotlib 파이썬에서 가장 많이 사용되는 데이터 플로팅 도구이다 MATLAB과 비슷하게 사용가능한 장점이 있다 많은 모듈을 포함하고 있지만 pyplot 모듈만 import해도 대부분의 기능을 사용가능하다 글꼴이나 스타일을 변경하고 싶을 때 최상위 레벨을 import한다 ※Matplotlib 툴킷 matplotlib에서는 툴킷을 추가해 기능을 확장할 수 있다. Matplotlib과 자동으로 설치되는 툴킷들도 있지만 대부분의 툴킷은 별도의 설치가 필요하다. 지도와 함께 플롯(Basemap, Cartopy) 3차원 그래프 플롯(mplot3d) 여러 개의 이미지를 배치 가능(AxesGrid) 고품질 플롯(Seaborn) 자연 근접 보간(Natgrid) 수치를 팝업 레이어로 표시(MplDataCurso..

DataScience
가우스 적분

다음과 같은 적분을 가우스 적분이라 한다 가우스 적분은 중심 극한 정리에 사용되며 정규 분포 식을 증명할 때도 사용되는 적분이다. 이외에도 편미분에서도 자주 등장하는 함수로 알아두면 유용한 함수이다. 주어진 함수를 그리면 다음과 같다 import numpy as np import matplotlib.pyplot as plt def func_(x): return np.exp(-(x**2)/2) x = np.arange(-5, 5, 0.1) plt.plot(x, func_(x)) 그래프는 범위를 -5~5까지 한정했지만 그래프가 무한대로 가면 결국 양 끝은 0으로 수렴할 것이다. 해당 그래프의 범위는 어떻게 구할 수 있을까? 구하고자 하는 적분의 결과 값을 I로 두면 다음과 같다 양변을 제곱하면, 이 때, x..

DataScience
[Numpy] 뷰

ndarray의 요소를 꺼내는 방법에는 크게 두 가지가 있다. 첫번째는 인덱싱을 이용해 뷰를 생성하는 방법이고 두번째는 사본을 생성하는 방법이다. 오늘은 뷰에 대해 알아보자. 뷰는 ndarray에 접근하기 위해 만든 참조를 의미한다. Numpy에서는 메모리에서 불필요한 복사가 이뤄지는 것을 최대한 피한다. 즉, 뷰는 ndarray의 참조이며 뷰의 값을 변경하면 ndarray의 값도 변경되게 된다. import numpy as np mat = np.arange(12).reshape(-1,4) print('before: ', mat) _view = mat[1, 1:] print() print('view: ', _view) print() _view[0]=100 print('after: ', mat) 보는 것처..

DataScience
[Numpy] ndarray

Numpy의 근간은 ndarray 객체이다. 리스트는 C의 배열과 다르게 각 요소들의 주소가 연속적이지 않다. 반면 Numpy의 ndarray는 각 요소들의 주소가 연속적이다. 이는 계산의 속도를 향상해 느린 연산 속도를 갖는 파이썬의 단점을 없애준다. 1. ndarray의 생성 1) array import numpy as np matA = [[1, 2, 3],[4, 5, 6], [7, 8, 9]] matB = np.array(matA) #리스트로 생성 matC = np.array(((1, 2, 3), (4, 5, 6), (7, 8, 9))) #튜플로 생성 print(type(matA)) print(type(matB)) print(type(matC)) 결과를 보면 알 수 있듯이 리스트와 튜플 모두 nda..

DataScience
[Numpy] 배열과 행렬

Numpy에서 다차원 배열을 '배열'과 '행렬'을 이용해 나타낸다. 이 때 배열과 행렬은 일반적으로 사용하는 '배열'의 형태이다. 둘의 차이는 행렬곱 연산에 사용되는 연산자의 차이뿐이다. import numpy as np A = np.array([[1,2], [3,4]]) #배열 B = np.matrix([[1,2], [3,4]]) #행렬 위와 같이 정의했을 때 각각의 자료형은 다음과 같다 배열은 ndarray 객체이고, 행렬은 matrix 객체이다 전에는 둘의 행렬곱 연산에 차이가 있었다 ndarray는 dot 연산을 이용해 나타냈고, matrix는 * 연산을 이용해 행렬곱을 나타냈다 지금은 둘을 혼용해서 사용가능하다 배열과 행렬을 곱했을 때는 matrix 객체를 반환한다 @연산자를 사용해 행렬곱이 가..

Python/Web Scraping
[웹크롤링] Twitter API를 이용해 Twitter에 글 남기기

1. Access Token 저번에 만든 Twitter 트위터 애플리케이션에 들어가서 Access Token을 발급받는다. 저번에 발급받은 키처럼 Secret Access Token은 외부에 노출되어선 안된다. 노출될 경우 Regenerate을 눌러 다시 발급받자 2. Twitter API를 이용해 Twitter에 글 남기기 1) 쓰기 권한 변경 저번에 만든 프로젝트에서 쓰기 권한을 활성화시켜 주어야 한다. 개발자 홈페이지 > Project > Settings > App permissions 으로 들어간다 Read and Write 또는 Read + Write + Direct Messages로 바꾸어 준다(쓰기 권한이 필요) 2) Token과 key 재발급 앱 권한을 변경한 다음에는 Token과 key를..

Python/Web Scraping
[웹크롤링] HTTPError, AttributeError, URLError

크롤링을 하다보면 페이지나 url이 존재하지 않거나 서버가 존재하지 않는 상황이 많이 생긴다. 이때 미리 예외처리를 해놓지 않으면 오랜 시간 프로그램을 돌리고 원하는 결과를 얻지 못할 수 있다. 다음과 같은 문제가 발생할 수 있다. 1) 페이지를 찾지 못하는 경우와 2) 태그가 없는 경우, 3) 서버를 찾지 못하는 경우이다. 1) HTTPError HTTPError는 서버에 접속은 성공했으나 해당 페이지를 찾지 못할 때 발생한다 from urllib.request import urlopen from urllib.request import HTTPError from bs4 import BeautifulSoup try: page = urlopen('https://koosco.tistory.com/error...

Python/Web Scraping
[웹크롤링] Twitter API Key 발급 받기

1. Twitter 대중적인 sns 중 하나인 트위터 API를 이용해 크롤링해 보려 한다. 트위터는 한국에서는 대중적인 sns는 아니므로 트위터에서의 정보를 직접 활용하기보다는 API를 어떻게 이용하고 크롤링할 수 있는지에 대해 공부해보려 한다. 2. Twitter API twython, twitter 이외에도 여러 트위터 관련 라이브러리가 있지만 twitter 라이브러리를 이용할 것이다. 먼저 서드파티 라이브러리이므로 추가적인 설치가 필요하다. pip install twitter 트위터 API는 15분간 15번 호출이 가능하며 전체 데이터가 아닌 일부 데이터만 사용가능하다는 제한이 있다. 별도로 프리미엄API를 판매하고 있다. 여기서는 이용하는 방법이 중점이므로 생략.. 3. Twitter Key 1)..