2006-10-01から1ヶ月間の記事一覧

scipy.stats

scipy.statsモジュールには統計には乱数に限らず統計学に関する関数がたくさん。 from scipy import * # データはあんまり意味なし x = arange(0.0, 2*pi, 0.01) y = sin(x) # 幾何平均 print stats.mean(y) # -1.72551106802e-06 # stats.varが分散 (sigma^…

timeit

timer = timeit.Timer(stmt='print scipy.sum(a)', setup='import scipy; a = scipy.arange(100.0);') print "time = ", min(timer.repeat(3, 100)) これは単純にstmtで与えたpython codeを実行した時の実行時間を測るらしい。 いちいちsetupとかしなきゃい…

hotshotモジュール

python codeのプロファイラ。 Cの拡張モジュールの時間は換算されない。当り前か? まぁpython codeのボトルネックは発見できるわけだけど、scipyとかは 外部モジュール使いまくりなのであんまり意味は無い。 weaveコードの時間を測るのにも使えない。 import…

C++コードのインライン埋め込み

from scipy import * converters = weave.converters def weave_func(x): y = zeros(x.shape, dtype=x.dtype) code = """ for(int i=0; i C++ weave.inline(code, ['x', 'y'], type_converters=converters.blitz) return y def py_func(x): return sin(x) * …

乱数生成

from scipy import stats nr = stats.norm.rvs(size=100, loc=0.0, scale=1.0) tr = stats.t.rvs(1.0, size=1000, loc=1.0, scale=0.5) の様に使う。 size, loc, scaleはどの乱数生成ルーチンにも共通っぽい。 この場合nrが正規分布、trがStudent's T分布っ…

非線形最小自乗フィッティングルーチン

MINPACKのlmdifとlmderのラッパーらしい。 Jacobianの行と列がどっちがどっちか分からないけど、 とりあえず微分を与えなくてもフィットはできる。これを使い易くするラッパークラスを作成中。。。