목록Language/Python (77)
우노
시간 측정 코드 단위는 초 입니다. import time start = time.time() # 시작 시간 저장 # 작업 코드 print("time :", time.time() - start) # 현재시각 - 시작시간 = 실행 시간
python의 SciPy 라이브러리를 활용하면 특정 density를 가진 sprase random matrix를 만들 수 있습니다. reference https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.random.html Prameters scipy.sparse.random(m, n, density=0.01, format='coo', dtype=None, random_state=None, data_rvs=None) m, n 행렬의 크기 density 행렬의 밀도 dtype 반환 된 행렬 값의 유형 random_state 난수 시드 data_rvs 확률 분포 지정 Sparse random matrix 생성 Scipy.spar..
# 데이터 생성 x = np.array([1, 3, 5, 7]) y = np.array([ 6, 3, 9, 5 ]) # 산점도 그리기 plt.plot(x, y, 'o') # m = 기울기, b = 절편 m, b = np.polyfit(x, y, 1) # 직선 그리기 plt.plot(x, m*x + b)
Pandas를 사용할 때, 숫자가 지수표현식(과학적표기법)으로 나와서 불편할 때가 있습니다. 이럴 때는 Pandas display option을 바꿔주면 실수 표현이 가능합니다. import pandas as pd # 과학적 표기법 대신 소수점 5자리까지 나타낸다. pd.options.display.float_format = '{:.5f}'.format 다시 원래대로 옵션을 변경하고 싶을 때는 아래 명령어를 사용하면 됩니다. pd.reset_option('display.float_format')
Numpy를 사용할 때, 숫자가 지수표현식(과학적표기법)으로 나와서 불편할 때가 있습니다. 이 때, Numpy의 Precision을 사용하면 실수 표현이 가능합니다. import numpy as np # 과학적 표기법 대신 소수점 6자리까지 나타낸다. np.set_printoptions(precision=6, suppress=True)
라틴 하이퍼큐브 샘플링 (Latin Hypercube Sampling : LHS) 표본 추출(샘플링) 방법 중 하나로, 위 그림과 같이 데이터가 고르게 분포 되는 특징이 있습니다. python의 Latin Hyper Cube Sampling 라이브러리를 활용하면 고른 분포의 데이터셋을 생성해 줍니다. https://pythonhosted.org/pyDOE/randomized.html 특징 비교적 일관성 있게 샘플링 됩니다. 전반적으로 고른 분포의 표본을 추출하고자 할 때 사용합니다. 분포를 동일한 확률 구간으로 분할합니다. 예제 코드 pyDOE의 라틴 하이퍼 큐브 디자인은 다음과 같은 간단한 구문을 사용하여 만들 수 있습니다. lhs(n, [samples, criterion, iterations]) n ..
파이썬에서 입력 값을 받을 때 보통 input()을 이용한다. 하지만 알고리즘에서 input()을 이용할 때 종종 시간 초과가 발생하기 때문에 sys 모듈의 sys.stdin을 사용한다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다. 여러 줄을 문자열로 입력 받고 싶을 때 import sys lines = sys.stdin.read() 여러 줄을 리스트로 입력 받고 싶을 때 import sys lines = sys.stdin.readlines() 간단한 stdin, stdout 예제 import re from collections import Counter import sys # 파일 입력 받기 document = sy..
데이터 살펴보기 머신러닝 모델을 만들기 전에, 해당 문제가 머신러닝 없이도 풀 수 있는 문제는 아닌지, 혹은 필요한 정보가 누락되지는 않았는지, 데이터를 조사해보는 것이 좋습니다. 또한, 데이터를 탐색하면서 비정상적인 값이나 특이한 값들을 찾을 수도 있습니다. 데이터를 탐색하는 가장 좋은 방법 중 하나는 시각화이며, 시각화 방법 중 하나는 산점도 행렬(scatter matrix)입니다. 산점도 행렬(scatter matrix)은 데이터의 특성 중 하나를 x 축에 놓고 다른 특성 중 하나를 y 축에 놓아, 두 특성의 관계를 하나의 점으로 나타내는 그래프입니다. 즉, 2개의 특성을 묶어 2차원으로 표현하므로, 모든 특성의 관계가 나타나는 것이 아닌, 짝지어진 두 특성의 관계만 나타내게 됩니다. 따라서, 특성..
Matplotlib 기초 https://wooono.tistory.com/89 scatter() 함수를 사용해 3차원 산점도(3D Scatter plot) 그리기 예제 코드 import matplotlib.pyplot as plt import numpy as np # 3차원 그래프를 그리기 위해서 from mpl_toolkits.mplot3d import Axes3D를 추가해줍니다. from mpl_toolkits.mplot3d import Axes3D # 0 ~ 10 까지 랜덤으로 20개씩 생성 x = [np.random.randint(10) for _ in range(20) ] y = [np.random.randint(10) for _ in range(20) ] z = [np.random.randin..
Matplotlib이란? Python 라이브러리 중 하나로 그림이나 도형을 그려준다. 데이터 입력을 위해 numpy나 scipy와 같이 사용하며, MATLAB 대신 쓸 수도 있다. 선 그래프 (line chart) 하나의 figure 안에 하나의 line 그리기 from matplotlib import pyplot as plt # x,y 축 데이터 years = [1950, 1960, 1970, 1980, 1990, 2000, 2010] gdp = [300.2, 543.3, 1075.9, 2862.5, 5979.6, 10289.7, 14958.3] # 표 내부 설정 plt.plot(years, gdp, color='green', marker='o', linestyle='..