keisukeのブログ

***乱雑です!自分用のメモです!*** 統計や機械学習の勉強と、読み物を書く練習と、備忘録用のブログ

Python

eralchemyをWindows環境にインストール

手間取ったのでメモ。 前提 eralchemy は 現在 Python2でしか動かない。 依存ライブラリ sqlalchemy 例のごとく pip install sqlalchemy graphviz ここからダウンロードしてインストール pygraphviz 例のごとくWindows環境ではビルド失敗なので*1、いつもお…

pandasとSQL

参考:pandasでRDBの読み書きをする Pandasは、R言語のdata.frameと呼ばれるデータ構造をPythonに移植したもので、 データ解析によく使われるライブラリ。 データ解析にはデータベースが切っても切れない関係であるため、 PandasはSQLと密に連携できるように…

IPython Notebookのfontやフォントサイズを変える

IPython Notebookの入力欄(code cell)はデフォルトだとmonospaceなフォントが使われているので、それを自分好みに変えるには %username%\.ipython\profile_default\static\custom\にある、custom.cssに次を追加: .CodeMirror {font-family: "Migu 1M"; font…

scipy.stats のパラメータ loc と scale について

scipy.stats の各種オブジェクトには locおよびscale というパラメータがあります. これらは結構混乱のもとなので,(自分向けに)まとめてみました. 任意の標準的な分布 があるとき, パラメータ loc=mu, scale=sigma と指定することで, が にしたがうよう…

【numpy】viewとcopy

配列のviewとは、もとの配列と同じデータを指している。 一方、copyは、もとの配列と同じデータのコピーを指している。 つまり、配列aのviewであるvが存在するとして、vの要素を書き換えるとaの値も同時に書き換わる。 しかし、aのcopyであるcの要素を書き換…

NumPyから最高のパフォーマンスを得る方法

この記事の和訳です。 色々間違っている可能性があるのでご注意ください。 NumPyはPythonの科学計算ソフトフェア群の基礎となるものです。 NumPyはndarrayというベクトル計算に最適化された特別なデータ構造を提供します。 このオブジェクトは、科学数値計算…

【matplotlib】日本語の設定

Matplotlibで日本語を出力するのにかなり手間取ったのでメモ。 Windows, Python3を想定しています。

【Python】 progressbar

進捗を示すためにshell上にプログレスバーを表示したいことがよくあります. 50% (200 of 400) |############ | こんなやつです. Pythonでも,重い処理をforループで回すときに欲しくなります. 当然同じことを考える人がいるので,すでにパッケージがあり…

WindowsでanacondaのEnvironment管理をする

参考:How to activate an Anaconda environment - Stack Overflow 何をしたいの? AnacondaのEnvironment管理に関する公式のドキュメントが、特にWindows環境においてはあまり充実しているとはいえないので、調べた結果を(自分用のメモも兼ねて)和訳して残…

IPython notebook (Jupyter) と IPython qtconsole を同じIPythonのカーネルで動かす

2015-05-23追記: IPython Notebook version 3 (Jupyter)からは、どうやらカスタムjavascriptが変わったようですので、%username%\.ipython\profile_default\static\customにある、custom.jsの末尾に挿入するコードは次のようになります: require([ 'base/j…

【Python】sliceの速度

listのsliceの速度がどれくらいかと思って実験してみました. 問題 長さlのlistがあるとします.その連続したr要素の和の最大値を求めます: x = [1,2,3,10,11,2] # l = 6: 長さ6のlist # sum([1,2,3]) # r = 3: 連続した3要素の和 # sum([2,3,10]) # sum([3…

【scikit-learn】変数やメソッドの命名規則

参考:http://scikit-learn.org/stable/developers/#apis-of-scikit-learn-objects自分の理解の整理も兼ねて、scikit-learnの公式ドキュメントの、特に 「規則」の部分について日本語でまとめます。 全体的にscikit-learnではAPIや命名が非常によく規則だっ…

IPython Notebookの自動カッコ補完を無効にする

http://stackoverflow.com/questions/22843891/turn-off-auto-closing-parentheses-in-ipythonIPython Notebookの自動カッコ補完を無効にするには、 ~/.ipython/profile_default/static/custom/custom.js に次を書き加えば良い: if (IPython.CodeCell) { IP…

matplotlibのArtistの階層構造

matplotlibのArtist(ユーザが意識して使っているクラス、FigureとかAxesとかAxisとか)は普通は階層構造を持つことになる。 例えば次のように図を作ると: >>> fig = plt.figure() >>> ax1 = fig.add_subplot(211) >>> line = ax1.plot(np.sin(np.arange(0,10…

matplotlib.axes.Axesのhelper methodsで作られたArtistsがどのcontainerに格納されるか

参考:Artist tutorial — Matplotlib 1.4.2 documentationmatplotlib.axes.Axes(一番良く使うArtists:subplotとか)のhelper methods(bar, plot, scatterなど)で作られたArtistsがどのcontainerに格納されるか: Helper method Artist Container Axes.annota…

matplotlibで背景の色や透明度を設定する - How to set the background color and transparency in matplotlib

参考:matplotlib公式のArtist tutorial JP matplotlibでプロットの背景の色や透明度の設定方法: >>> import matplotlib.pyplot as plt >>> fig = plt.figure() # Figure >>> ax = fig.add_subplot(211) # Axes >>> fig.patch.set_facecolor('blue') # 図全…

Python format string

Pythonのstringには.format()というフォーマット指定子のメソッドが用意されています. C言語のsprintfをするときのように,文字列に他の文字を埋め込みたいときに使うやつです. 例えば,次のように使います: >>> a = 'hoge' >>> b = 123 >>> c = 3.14 >>>…

【Python】ふたつの配列からすべての組み合わせを評価

引数をふたつとる関数f([x,y])が存在するとします(この場合は引数2つではなく、要素数2の配列をひとつ引数にとるのほうが正しいですが・・・)。 たとえば、f([x,y]) = x+y などです。 このfはうまく実装されているので、f([[1,3], [2,4]])とすると(つまり[1+…

【Python】max/minのindex

Pythonでmax/minの値ではなく、そのindexを取るためには、 >>> x = [2, 3, 0, 1] >>> max_idx = x.index(max(x)) >>> min_idx = x.index(min(x)) みたいな微妙に歯がゆい書き方をしないといけない(しかも、index()とmax()/min()で二回探索しててアホっぽい)…

numpyのshuffleとpermutationの違い

python - shuffle vs permute numpy - Stack Overflownumpyにはshuffle(x)とpermutation(x)というほぼ同じ機能の関数があります. どちらも,配列をランダムに並び替えますが,違いが2つあります.ひとつは,shuffle(x)は配列をin-placeで並び替えるが,perm…

selfってなんじゃ

Pythonでclassを定義する時、methodの引数やメンバ変数などに出現するself。 あれはそのクラスのオブジェクトを指している。obj = Cls(x, y)などとオブジェクトobjを生成すると、クラスClsのselfにobjが使われる。 実のところ、obj.method(z)は、Cls.method(…

matplotlibのplotの種類

pyplot — Matplotlib 1.4.0 documentationplt.plotの引数である,linestyleとcolor,markerの実際のプロット例. plt.plot(x, y, linestyle='-', color='b', marker='.')などと指定する. plt.plot(x, y, 'b.-')などと同時に指定もできる. import numpy as n…

decorator

http://www.jeffknupp.com/blog/2013/11/29/improve-your-python-decorators-explained/ @currency def price_with_tax(price, tax_rate_percentage): return price * (1 + tax_rate_percentage) では、currencyがdecorator. currencyは def currency(f): de…

yield

Improve Your Python: 'yield' and Generators Explained yield文はgenerator functionを作るために必要。 yield文をひとつでも持つ関数はgenerator functionと呼ばれる。 また、generator fucntionのインスタンス?クロージャ?(gen = gen_func()のgenみた…

numpyの1d-arrayを2d-arrayに変換

超基本的だけど毎回微妙にむかつくので整理するためにメモ.numpyはベクトルと行列を分けているので*1,ベクトルの転置が取れなくて困る. n次元ベクトルxは,numpyでは行ベクトルでも列ベクトルでもない.単にn次元ベクトル. だからx.transpose()してもな…

numpyでvstackするかbuilt-inのlistから変換するか

Pythonには,数値計算,特にベクトル行列演算を高速かつ便利におこなう numpyと呼ばれる強烈なライブラリがあります.しかし,numpyのarray (Cの配列のようなものと考えて問題ない)は, ベクトル行列演算をpythonのforループを用いた演算よりも果てしなく高…

【python】setのset

*********************************** 2014年7月23日追記 ImmutableSet を使えばこんなめんどくさいことをしなくても良いことを知りました. http://docs.python.jp/2/library/sets.html#sets.ImmutableSet python3の場…

cProfileの表示順

https://docs.python.org/2/library/profile.html#module-cProfile http://stackoverflow.com/questions/10326936/sort-cprofile-output-by-percall-when-profiling-a-python-script PythonでcProfileを使うとどの関数がどれだけ時間喰ってるかを調べられる…

scipyでの疎行列(sparse matrix)の扱い

scipyにはsparseという疎行列関連のモジュールがあります. すでに公式のドキュメントが充実していますが, 自分の中の整理も兼ねて日本語でまとめたいと思います.概要:全部で7種類の疎行列型が存在します. csc_matrix: Compressed Sparse Column format …

pythonからRを使う

Rはデータ解析において多くの機能を備えた、言語としての事実上の標準です。 ところが、Rはその独特の記法や体系、解析以外の機能があまり好ましくありません*1。そこで、強烈な標準ライブラリと多くのサードパティ提供ライブラリを備えるpythonからRを使い…