14

ラボでの実験では、データ分析に役立つ小さなプログラムを作成します。私は通常、基本的な計算、平均、標準偏差、任意の重み付き関数フィッティング、およびエラーバーとフィッティング関数を含むプロットが必要です。

GNU Octave では、これを行うことができます。私はその言語をもっと読み始めましたが、その矛盾が気に入らず、さらに別の言語を学ばなければならないと感じ始めました。

そこで、以前から使っている Python を SciPy と NumPy で使おうと考えています。Python でこれらのことを簡単に行うことができますか?それとも、汎用言語 Python で意図したことを行うには、より多くのオーバーヘッドがありますか?

4

1 に答える 1

21

はい、Pythonエコシステムは、特にIPythonインターフェースを使用して、日常のデータ分析タスクに実行可能なプラットフォームになります(ただし、ここでは標準のインターフェースに固執します)。 1つは、私見です。これが、私がこのようなものにPythonを使用する傾向がある理由の1つです。

>>> 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])

「エラーバーとフィット関数を使用したプロット」

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")

サンプル写真

于 2012-09-09T22:30:13.800 に答える