タグ

Pythonとstatに関するboxheadroomのブックマーク (5)

  • メモ: numpyアクセス高速化 – Momentum

    概要 ・Cythonを用いてnumpyのarrayへのアクセスを高速化する ・numpy使用時に陥りがちな罠(様々なサイトで書かれているが)をまとめておく 準備(setup.py) とりあえずsetup.pyを用いたコンパイル方法を使うにあたって、numpyのarrayを使う際に微妙に書き換える場所があるのでそれをメモ include_dirsの設定を行う必要がある

  • PyStanでMCMC入門 - old school magic

    概要 PyStan は Stan というMCMC計算用言語の Python インターフェイスです。 Stan http://mc-stan.org/ PyStan http://pystan.readthedocs.org/en/latest/index.html MCMCを計算できるソフトはいくつかあるのですが、Stan は C++で実装されているため高速 最近のサンプリング法を実装している といった特徴があります。特に速度には目を見張るものがあります。 前回までは PyMC3 をいじっていたのですが、他のソフトにも触ってみようと思い、今回は PyStan でモデリングをしてみました。 PyStan のインストール Anaconda を入れればもれなく一緒にインストールされます。 Anaconda https://store.continuum.io/cshop/anaconda/ 参考

  • Ubuntu 14.04 に Anaconda で Pymc3 を使えるようにするまで(2014/08/08現在) - けいれん現象の幽玄美よ

    2014-08-08 Ubuntu 14.04 に Anaconda で Pymc3 を使えるようにするまで(2014/08/08現在) Python Linux はじめに ArchLinuxでしたらPythonはアップデートで新しいバージョンに対応していきますが、Ubuntuではそうはいきません。 また、Ubuntu14.04ではpyvenvやensurepipが困ったちゃんだったりでゲンナリしてます。 そこで、「Anacondaかminicondaを使えば幸せになれるのではないか!?」と思い実際にやってみました。 それから、Pymc3をインストールするまでを記載しますが、あくまで2014/08/08現在のインストール手順です・・・Pymc3はalpha版ですし依存関係や依存関係モジュールのバージョンアップ等でも状況が刻々と変化しますのでその都度要対応なのですOrz よって、何度

    Ubuntu 14.04 に Anaconda で Pymc3 を使えるようにするまで(2014/08/08現在) - けいれん現象の幽玄美よ
  • Pythonによるモンテカルロ法入門 - 人工知能に関する断創録

    PRMLの11章で出てくるマルコフ連鎖モンテカルロ法(Markov chain Monte Carlo methods: MCMC)。ベイズでは必須と呼ばれる手法だけれどいまいち理屈もありがたみもよくわからなくて読み飛ばしていました。 最近、ボルツマンマシンを勉強していて、ベイズと関係ないのにマルコフ連鎖やらギブスサンプラーやらが出てきて格的にわからなくなってきたのでここらで気合を入れて勉強し直すことにしました。 参考にした書籍は「Rによるモンテカルロ法入門」です。PRMLと同じく黄色いなので難易度が高そう・・・このはR言語を使って説明がされていますが、それをPythonで実装しなおしてみようかなーと計画中。numpy、scipyの知らなかった機能をたくさん使うので勉強になりそう。 ただRにしかないパッケージを使われると途中で挫折する可能性が高い・・・あと内容が難しすぎて途中で挫折す

    Pythonによるモンテカルロ法入門 - 人工知能に関する断創録
  • scipy.sparse: 疎行列の要素へ関数の一括適用 – はむかず!

    くだらないものばかり作ってないでたまには技術ネタを書いてみようと思う。 Python(とくにscipy.sparse)でx=0でf(x)=0となるようなユニバーサル関数fを疎行列のそれぞれの要素に作用させるにはどうすればいいだろうか。 x=0で0になるという点が重要で、その条件を満たす関数ならばもとの行列のsparsityをそのまま保存できる。つまり結果も疎行列になるはずだ。 Pythonにはユニバーサル関数という呼ばれる関数群があって、それは密行列については便利な機能で、例えば、密行列のすべての要素にtanhを作用させようとすると、次のようなコードで計算できる。 import numpy as np a=np.ones((3,3)) print a b=np.tanh(a) print b つまりユニバーサル関数は行列に作用させると各要素に作用する。以前に書いたfor文を書いたら負けとい

  • 1