タグ

ブックマーク / bicycle1885.hatenablog.com (5)

  • HaskellのFusionがあれば速度と抽象化を両立できる - りんごがでている

    データの分析をする際には配列やベクトルは欠かせないデータ構造です。 大体どの言語にも大体配列は用意されていて、そこにサンプルのデータ等を入れて統計量を計算したり関数に渡して回帰をしたりするわけです。 ベクトルという単位でデータの塊を扱うものの、実際のアルゴリズムではベクトル内の要素一つひとつを見ていって何か処理をしたり計算をすることが多いでしょう。 その際、命令型言語ではforループを陽に使って要素にアクセスすることになります。 簡単な例を見てみましょう。ベクトルv1とv2の内積を求める関数をC言語で書くと以下のようになります。 function dot(double* v1, double* v2, size_t n) { double s = 0.0; for (int i = 0; i < n; i++) { s += v1[i] * v2[i]; } return s; } 特に難

  • Haskellのパッケージ管理について調べてみた - りんごがでている

    Haskellやって1年ちょっと経つわけですが、Haskellで使うpackageの管理についてよく知らなかったので色々調べてみました。 対象としては最近Haskellを始めた方やpackage管理についてよく知らないという方向けです、 packageを利用する側からの説明なので、作るにはどうしたらいいかは書いてません(`・ω・´)ゞ そして、やたら長いのです。 ちなみにghc-7.0.3で、OSはLinux Mintです。 packageって? packageはHaskellのライブラリを構成する一つのまとまりで、packageはいくつかのmoduleをまとめています。 moduleはだいたい.hs拡張子のHaskellプログラム1ファイルと対応していて、module Foo.Bar whereとファイルの上の方に書いてあるFoo.Barがモジュール名です。 Haskell Platfo

    Haskellのパッケージ管理について調べてみた - りんごがでている
  • JuliaTokyo #2 でモンテカルロ法について話してきました - りんごがでている

    9月27日の JuliaTokyo #2 で『Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り)』と題してHamiltonian Monte Carlo (HMC) とStanで使われているNUTSについてお話してきました。 JuliaTokyo #2 - connpass 内容 Juliaで学ぶ Hamiltonian Monte Carlo (NUTS 入り) from Kenta Sato サンプルコード: bicycle1885/JuliaTokyo2HMC · GitHub MCMC自体については30分ではほとんど説明できませんでしたが、会場のほとんどの方が既に知っているようでしたのでちょうど良かったようです。 全体の流れとしては、Metropolis-Hastings、Hamiltonian Monte Carlo、No-U-Turn Samp

    JuliaTokyo #2 でモンテカルロ法について話してきました - りんごがでている
  • matplotlib入門 - りんごがでている

    matplotlibはPythonでグラフを描画するときなどに使われる標準的なライブラリです。 画像ファイルを作るばかりでなく、簡単なアニメーションやインタラクティブなグラフを作ることも可能です。 実際の例はmatplotlibサイトのギャラリーで見ることができます。 matplotlib/gallery matplotlibは家のサイトやどこかのブログにあるチュートリアルや例を描画してみるぶんには簡単なのですが、 実際に自分でプロットするとなると基礎的な概念を理解していないと使いにくいライブラリでもあります。 また、基礎的な概念を理解していないとドキュメントを参照する際にもどこを見て、どう実用すればいいのかわかりません。 そこで、この記事ではそのあたりのmatplotlibの基礎を解説していきます。 なお、Python自体の知識はある程度仮定していますが、matplotlib自体の実装

    matplotlib入門 - りんごがでている
  • Pythonのコマンドライン引数処理の決定版 docopt (あとJuliaに移植したよ) - りんごがでている

    Pythonをよく使う人にはよく知ってる人も多いのですが、docoptという便利ライブラリがあります。 docoptはargparseやoptparseのようなコマンドライン引数をパースするライブラリなのですが、その発想がコロンブスの卵なのです。 例えばPython標準のargparseだと、argparseのAPIを組み合わせてパーサを組み立てるわけです。するとパーサと一緒にヘルプも作ってくれて、"program --help"などとすると自動生成されたヘルプを表示してくれるようになります。 しかし、そのAPIを覚えるのが大変で、毎回ドキュメントを読まないと忘れちゃうわけです。 import argparse parser = argparse.ArgumentParser(description='Process some integers.') parser.add_argument

    Pythonのコマンドライン引数処理の決定版 docopt (あとJuliaに移植したよ) - りんごがでている
  • 1