scipy는 간단한 단일변수(univariate)부터 복잡한 복수변수(multivariate)를 망라하는 보간법 함수를 15개 이상 제공한다.
1. 단일 변수
보간법은 두 가지의 기본적인 방법을 사용한다.
(1) 전체 데이터 집합에 단일 함수 적용하는 방법
(2) 여러 개의 함수를 각기 다른 데이터 집합에 적용하는 방법 (스플라인 보간법)
import numpy as np
from scipy.interpolate import interp1d
x = np.linspace(0, 10*np.pi, 20)
y = np.cos(x)
fl = interp1d(x, y, kind = 'linear')
fq = interp1d(x, y, kind = 'quadratic')
xint = np.linspace(x.min(), x.max(), 1000)
yintl = fl(xint)
yintq = fq(xint)
노이즈가 포함된 데이터의 보간법
from scipy.interpolate import UnivariateSpline
sample = 30
x = np.linspace(1, 10*np.pi, sample)
y = np.cos(x) + np.log10(x) + np.random.randn(sample)/10
f = UnivariateSpline(x, y, s=1)
xint = np.linspace(x.min(), x.max(), 1000)
yint = f(xint)
2. 복수 변수
영상 복구에 사용되기도 한다.
from scipy.interpolate import griddata
from scipy.interpolate import SmoothBivrateSpline as SBS
영상에 두 가지 방법을 각각 적용하여 결과를 비교하면 SmoothBivrateSpline이 더 잘 동작하는 것처럼 보일때가 있는데, 코드를 여러번 실행해 비교해 보길 바란다. SmoothBivrateSpline은 표본에 민감해 보간법을 적용한 결과가 이상한 경우도 있다. griddata는 좀 더 안정적이어서 표본 선택과 관계없이 타당한 결과를 얻을 수 있다.
출처: <데이터/수치 분석을 위한 파이썬 라이브러리 SciPy와 NumPy (한빛미디어)>
2017년 12월 5일 화요일
피드 구독하기:
댓글 (Atom)
람다 표현식 (Lambda expression)
람다 표현식(Lambda expression) 람다 표현식으로 함수를 정의하고, 이를 변수에 할당하여 변수를 함수처럼 사용한다. (1) 람다 표현식 lambda <매개변수> : 수식 ※ 람다식을 실행하...
-
데이터 과학자가 알아야 할 5가지 클러스터링 알고리즘 February 26,2018 클러스터링은 데이터 포인트의 그룹화와 관련된 머신러닝 기술입니다. 데이터 포인트 집합이 주어지면 클러...
-
Speech Processing for Machine Learning: Filter banks, Mel-Frequency Cepstral Coefficients (MFCCs) and What's In-Between 출처: < http:...
-
영교차점(zero-crossing) 찾기 (파이썬) a = [1, 2, 1, 1, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10] 일 때, In[61]: z = np.where(np.diff(np.sign(...
댓글 없음:
댓글 쓰기