ビールとポップコーンと映画 ラストマイルを見た。良い映画だった。 映画館でべそべそ泣いて、鼻を啜りながら車で帰った。感想はこのブログでは書かない。みんな映画館に行って感じてみてほしい。 帰ってからツイッターで感想を漁り、うんうん、わかるわかる、そうだよね、とまた映画を思い出して…
The world of infrastructure as code is becoming far more pervasive and many Python developers are trying to find a way to get started. This class will get you up and running with Chef and Fabric to manage your systems be they in the cloud or under your desk. Python projects can succeed or fail because of their documentation. Thanks to Sphinx, Python now has a “documentation framework” with indexin
MongoDB使ってますかー?便利ですよー? 最近、位置情報を処理するのにこのMongoDBを使っています。何故Mongoかと言うと 「この位置から500m以内の施設情報をヨコセ」 といった検索が超簡単にできるから。 論より証拠。 MongoDBには[緯度、経度]といった配列を含むデータをつっこんでおきます。こんな感じ。 [js] db.test.save({‘id’:’hoge’, ‘place’:’新宿駅’, ‘loc’:[35.690921, 139.700258]}); db.test.save({‘id’:’hoge’, ‘place’:’スタジオアルタ’, ‘loc’:[35.69271580036533, 139.70121502876282]}); db.test.save({‘id’:’test’, ‘place’:’東京都庁’, ‘loc’:[35.6894743099
SIGIR 2011のDOM Based Content Extraction via Text Densityが、シンプルなアルゴリズムながら良さそうな結果を示していたので、著者のコードを改変してSWIGでPerlとPythonのbindingを作った。 下手な英文メールにも関わらず、コードの利用を快く認めて下さったFei Sunさん、ありがとうございます! cpp-ContentExtractionViaTextDensity - GitHub これは何をするものかというと、タイトルどおり、DOMツリー上でText Densityという指標を用いてウェブページの本文抽出を行うもの。機械学習とかではなく、単純に決められた方法で計算されたText Densityを用いるだけのシンプルなアルゴリズムである。 Text DensityはDOMノードごとに計算され、シンプルにテキストの文字数をタ
いろいろと必要があってCythonとNumpyを使うことになりましたが、少し嵌ったのでメモ 数値計算にはPython+Numpyを利用していましたが、(禁忌とされる)データに対して直接forループを回さなければならないような状況に陥ったので、仕方なくCythonを導入。 CythonからNumpy.arrayにアクセスしたい時は、ナイーブな方法で行うとオーバーヘッドが大きい。 そのため、配列へのアクセスを高速に行うための仕組みがCythonにあります。 Working with Numpy http://docs.cython.org/src/tutorial/numpy.html#efficient-indexing このあたりの公式文書を参照のこと。Pythonのオブジェクトとして扱うのではなく、きちんと型と次元を指定してやって、もっとC寄りの配列を直接いじる感じ。 さて、この機能を利
オブジェクト指向プログラミング+multiprocessing.Poolでの並列処理でハマりました。 クラスの中でPoolライクな文法で並列演算を行なうことのできるMyPoolを自作したのでその紹介です。 Pythonでの並列処理について Pythonにはver2.6以降からmultiprocessingという便利なものがあります。 これのPoolという機能を使うと、 test.py # -*- coding: utf-8 -*- from multiprocessing import Pool def fuga(x): # 並列実行したい関数 return x*x def hoge(): p = Pool(8) # 8スレッドで実行 print p.map(fuga, range(10)) # fugaに0,1,..のそれぞれを与えて並列演算 if __name__ == "__main
いまやノートブックでもデュアルコアやクアッドコアが当たり前になってきたので、似たような処理を延々と繰り返すようなデータ解析のプログラムなどは並列化するとかなりの恩恵が得られる。Python ではバージョン2.6から multiprocessing モジュールというのが標準ライブラリに入っており、比較的簡単に並列計算のスクリプトが書けてしまう。 個人的に並列化できると一番うれしいのは、統計量の有意性の検定のためにサロゲートデータを大量に作って、そこから(帰無仮説に基づいた)統計量の分布を推定するときの、それぞれのサロゲートごとの統計量の計算だ。この場合、個々の計算は完全に独立なので、プロセス間の通信などは考える必要がなく、非常に単純に並列化できる。ということで早速スクリプトを書いてみたが、まあ書くだけならすぐ書けるのだが、使い勝手や汎用性を求めると、ちょっとややこしいことを考えなければならな
自然言語処理の技法の1つに、潜在的意味解析(LSA)というものがある。 単語文書行列Aがあった場合、特異値分解(SVD)により A=UΣV に分解し、特異値を大きいほうからk個使って Ak=UkΣkVk のように階数の低減を行うことで、階数kのAへの近似を最小誤差で得ることができる。 つまり特異値分解の計算さえできてしまえばLSAもすぐできるわけだが、 pythonの数値解析モジュールScipyにかかれば特異値分解もあっという間である。 まずは特異値分解まで↓ from numpy import * from scipy import linalg A = matrix([ [5, 8, 9, -4, 2, 4], [2, -4, 9, 4, 3, 3], [-3, 4, 8, 0, 5, 6], [-2, 5, 4, 7, 0, 2] ]) u, sigma, v = linalg.sv
Python、特にSciPyは日本語でのドキュメントが少ないので、メモがてら記述。 単語文書行列などでは大規模疎行列になることがよくある。 そこで格納方法の工夫などを行っていく必要がある。 最もスタンダードな方法としては圧縮行格納方式などがある。 基本的に疎行列の要素は0なので、非零の要素の位置だけ覚えておこうという発想。 もちろん(?)SciPyには疎行列を扱うモジュールsparseが用意されている。 lil_matrixにて疎行列を生成。引数には行列の大きさ(m, n)を指定。 from numpy import * from scipy import io, sparse A = sparse.lil_matrix((3, 3)) # 疎行列生成 A[0,1] = 3 A[1,0] = 2 A[2,2] = 5 【Aの型、中身】 3×3行列であること、および非零の位置のみ格納されてい
10/15 に IBM さんの渋谷オフィスにて開催された 第2回 Tokyo.SciPy にのこのこ参加してきました。主催の @sla さんはじめ、参加者・発表者各位おつかれさまでした&ありがとうございました。 せっかく行くならなんか発表したいよね、ということで「数式を numpy に落としこむコツ 〜機械学習を題材に〜」なんてタイトルで、数式(あるいは数式入りのアルゴリズム)を実装するときに、どういう点に注目すれば易しくコードを書けるか、についてちらちら語ってみた。 こちらがその資料。 数式をnumpyに落としこむコツ View more presentations from Shuyo Nakatani 例えば、機械学習の(多クラス)ロジスティック回帰という技術では、次のような数式が登場する。 (PRML (4.109) 式) これを一目見てすらすらとコードが書けるなら苦労はないが、慣
HadoopフレームワークはJavaで書かれていますが、Hadoop上で動くプログラムはJavaで記述する必要はありません。PythonやC++(バージョン0.14.1以降)のような他の言語で開発することができます。しかし、Hadoopのホームページのドキュメントや最も重要なPythonのサンプルコードを読むと、PythonコードをJythonを使ってJavaのjarファイルに変換しないといけないように考えてしまいます。明らかに、この方法はきわめて不便で、もし、Jythonが提供していないPythonの機能を使っている場合はともて問題です。Jythonのアプローチのもう一つの問題は、Hadoopと連携させてPythonプログラムを書くオーバーヘットです。<HADOOP_INSTALL>/src/examples/python/WordCount.pyを見れば、言っていることがわかると思いま
Using the Cython Compiler to write fast Python code Dr. Stefan Behnel http://cython.org/ cython-dev@codespeak.net cython-users@googlegroups.com About myself Passionate Python developer since 2002 after Basic, Logo, Pascal, Prolog, Scheme, Java, C, ... CS studies in Germany, Ireland, France PhD in distributed systems in 2007 Language design for self-organising systems Darmstadt University of Techno
rec 視聴数: 122 2011/08/27 13:58 Pythonで創るソーシャルゲームの未来 /... rec 視聴数: 10 2011/08/27 13:26 Guido への5つの質問 / Five... rec 視聴数: 11 2011/08/27 13:08 Webフォームウィジェットツールキットを総括す... rec 視聴数: 44 2011/08/27 11:39 C APIへの誘(いざな)い/An... rec 視聴数: 9 2011/08/27 11:01 Keynote rec 視聴数: 11 2011/08/27 09:49 Opening rec 視聴数: 15 2011/08/27 09:38 一覧をみる
このエディションについて 無料オンライン本 として提供されている Django Book のセカンドエディ ションへようこそ。 私たちはまだこの本を執筆/編集中であり、それは次の2点を意味しています。 最初に、章が少ないのでお気づきと思いますが、 この本はまだ執筆中です 。 私たちは、数週間の間に残りの章を執筆する予定です。 もし、あなたが Django 1.0 ではなく、バージョン 0.96 を利用している場合は、 以前のエディション(英語) を参照できます。 次に、 私たちは皆さまの援助を歓迎しています 。 文書に間違いを発見された場合や、 各セクションを改良するための意見がある場合は、 今のところ心に秘めておいてください(笑)。 そのうちコメントシステム作ります。 私たちは皆さまの意見を反映したいと思っています。 この本を読んで頂けることを感謝しております。 この本を無料で皆様に提供
Numpy/Scipyの勉強会であるTokyo.SciPyに参加しました.場所は渋谷マークシティのIBMイノベーションセンターです.Tokyo.SciPy #1 - [PARTAKE]Numpy/Scipyという実装の勉強会でありながら,本職の研究者の方も多く来ていて理論的な背景のしっかりした発表が多く,勉強になりました.昨日のPyConでも会った人や,TokyoRのほうに出ていた方もいて面白かったです.また運営がしっかりしていて見習いたいところ. NumPy/SciPy体験セッション by @lucidfrontier45資料・コード:lucidfrontier45/TokyoScipy - GitHub NumPy, SciPyの機能紹介 Pythonで数値計算 数値計算 = ループ ループ内部はCで実装してアルゴリズムはPythonで Numpy: Cで実装されたndarrayクラス
g:subtech:id:mala:20090920:1253447692にて、すばらしいスレッド関係のまとめが記載されていました。ちょうど、今取り組んでいる研究に必要なことなのでなんてタイムリーなんだ!と思いました。GJ! さて、その中で気になったのがPythonでGILを無くす(回避する?)仕組みといういうところ。研究で使うため、PythonでCPUを遊ばせないようにするにはどうするのかということを調べていました。私が調べた限りでは、ちょっと前まではParallel Python、最近は2.6以降から導入されたmultiprocessingを使う、と認識しています。CPUを遊ばせたくない場合は、皆様はどのようにしているのでしょうか*1。 ちなみに私は、multiprocessingを使っています。用途が並列処理なので主にPoolを使っています。下記に私が検討に使ったサンプルを記載します
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く