2012-09-09 2 views
12

실험실 실험에서는 데이터 분석에 도움이되는 작은 프로그램을 작성합니다. 나는 보통 기본 계산, 평균값, 표준 편차, 임의 가중치 함수 피팅 및 오차 막대 및 맞춤 함수가있는 플롯을 필요로합니다.GNU 옥타브 대신 SciPy

GNU 옥타브로 할 수 있습니다. 나는 그것의 언어에 더 많은 것을 읽기 시작했고 나는 그것의 불일치를 싫어하고 또 다른 언어를 배워야 만한다.

그래서 저는 지금 잠시 동안 사용하고있는 Python과 SciPy 및 NumPy를 사용하려고 생각하고 있습니다. 파이썬으로 이러한 작업을 쉽게 수행 할 수 있습니까? 아니면 일반 목적의 파이썬이 의도 한대로 수행하도록하는 것이 더 많은 오버 헤드입니까?

답변

20

그렇습니다. Python 에코 시스템은 특히 IPython 인터페이스를 사용하여 일상적인 데이터 분석 작업을 수행 할 수있는 플랫폼으로 만듭니다 (단, 여기에서는 표준 인터페이스를 사용합니다). "다른 언어를 배우지 않아도됩니다" 논쟁은 IMHO라는 강력한 구문이며, 필자가이 부분에 파이썬을 사용하는 이유 중 하나이기도합니다.

>>> import numpy as np 
>>> import scipy.optimize 

>>> x = np.linspace(0, 10, 50) 
>>> y = 3*x**2+5+2*np.sin(x) 

"란, 표준 편차"

>>> y.mean() 
106.3687338223809 
>>> y.std() 
91.395548605660522 

"피팅 임의 가중 함수"

>>> def func(x, a, b, c): 
...  return a*x**2+b+c*np.sin(x) 
... 
>>> ynoisy = y + np.random.normal(0, 0.2, size=len(x)) 
>>> popt, pcov = scipy.optimize.curve_fit(func, x, ynoisy) 
>>> popt 
array([ 3.00015527, 4.99421236, 2.03380468]) 

"그래프"I 보통 단지 기본적인 계산이 필요 " 오차 막대와 맞는 f 기름 부음 "

xerr = 0.5 
yerr = abs(np.random.normal(0.3, 10.0)) 
fitted_data = func(x, *popt) 

# using the simplified, non-object-oriented interface here 
# handy for quick plots 

from pylab import * 
errorbar(x, ynoisy, xerr=xerr, yerr=yerr, c="green", label="actual data") 
plot(x, fitted_data, c="blue", label="fitted function") 
xlim(0, 10) 
ylim(0, 350) 
legend() 
xlabel("time since post") 
ylabel("coolness of Python") 
savefig("cool.png") 

sample pic

+0

+1 : 좋은 대답. – tom10

+0

그 상세한 답변을 주셔서 대단히 감사합니다! 꽤 빨리 시작해야합니다. 나는 단지 물어 보는 것을 잊어 버린 하나의 작은 것들을 가지고 있습니다 : 측정 및 오류 튜플을 정상적인 방법으로 처리하는 방법. (나는 그곳에 물었다. (http://stackoverflow.com/q/12351837/653152).) –