Python勉強記(モジュール毎)

パラメータを変えて正規分布グラフを書きたい(sympyを使う)

確率分布を試しに書く際、データを発生させたりせず試したかったので、数式を扱うsympyで書いてみました。 使うもの # 描画 from sympy.plotting import plot # 数式 from sympy import symbols # 計算 from sympy import exp,pi,sqrt ▼上を読んで「ん?」と…

Pythonでフォーミュラを用いてGLMしたい(statsmodels.formulaを使う)

Rでモデルを作る時に使うフォーミュラのstatsmodels版です。 しょっちゅう、書き方を忘れるので、、、 基本 importします。 まず何をimportするのかを忘れます、、、 #たいてい.apiをつけ忘れる import statsmodels.formula.api as smf #こっちも使うんだけ…

Pythonの統計処理や機械学習でカテゴリ変数を扱いたい(get_dummiesを使う)

統計処理や機械学習でカテゴリ変数を扱う場合、 そのままでは使えないことが多く、数値変換やフラグ変換が必要です。 pandas.get_dummiesはフラグ変換をかなり簡単にしてくれますが、 引数の渡し方で挙動が変わるので注意が必要です。 カテゴリ変数の扱い方 …

sympyで文字列を直接数式として扱いたい(sympifyを使う)

過去にPythonで数式を扱い、微積などを扱う方法を書きました。 esu-ko.hatenablog.com このとき、数式の変数はsymbolsやSymbolで一度定義し、 その変数に直接計算式を追加しているのですが、これは大変。 特に、アプリケーションに組み込んだり、可変にした…

Pythonの辞書を様々なファイル形式で保存する

Pythonの辞書{}をファイルなどに永続化する方法は複数あります。 import json d = {'test':1} # jsonファイルとして保存 with open('json.json','w') as f: json.dump(d,f) # json stringとしてテキストファイルに保存 with open('json.txt','w') as f: txt …

Pandasでcross joinを行いたい

SQLでデータを用意する際、cross joinを用いて欠損がないデータセットをつくり、 そこに情報をleft outer joinしていくことがあります。 Pandasでも同様の処理をしたいと思い、ドキュメントをみたのですが、 Pandasのmerge(SQLのjoin)のhowはleft,right,oute…

Pandasでプログレスバーを出したい(tqdmを用いる)

分析でPandasを用いる場合、 量の多い行列方向の処理をしたいときに進捗を可視化したいことがあります。 Pythonのforループでプログレスバーを出すのにはtqdmを用いますが、 esu-ko.hatenablog.com pandasでも同様にtqdmを用いることができます。 pandasのメ…

分析用にファイルを読み込みたい(pd.read_csvを使う)

Python自体でcsvファイルを読み込むなら、 csvモジュールを使うのが基本です。 参考: esu-ko.hatenablog.com ただし、分析などの際は、ファイルを読み込んで最終的にデータフレームにすることがほとんどです。 そういった場合、pandas.read_csv()を使うと手…

PythonでBASE64を扱いたい(base64を使う)

PythonでBASE64を扱うには、まさしくその通りの名前のモジュールbase64を用います。 画像を扱う時に備えて勉強しておく必要があります。 そのまえに、BASE64とは BASE64はバイナリデータを64種類の文字に置き換えて表現する方法です。 64の内訳は 大文字英数…

Pythonで画像編集がしたい(Pillowを使う)

そろそろ画像まわりも覚えていきたいので、 まずPillowをためす。 機械学習なんかをするにはOpenCVやnumpyで画像を扱える必要があるのだろうけど、 まずは簡単な画像編集から。

PythonでさくっとwebAPIを立てる(falconを使う)

画面なんて作るから構築に時間がかかるんだ!(極論) ※なお、良心がタイトルを「まだテンプレートで消耗しているの?」にさせなかった模様。 Pythonの有名ドコロwebフレームワークは、 どれもデフォルトでテンプレート機能が用意されています。 (対してORMはDj…

Pythonで地図情報を扱いたい(foliumを使用する)

PythonだとCUIな処理のイメージが強いですが、 ビジュアライズでも強力なモジュールがそろっています。 例えば地理情報の処理では、 foliumというモジュールが便利です。 github.com

PythonでRubyOnRailsライクなwebアプリ開発を行いたい(ruPy on rails)を使う

20160402追記:モチのロンですが、エイプリルフールネタでした(せめてレポジトリは用意すれば良かった・・・ 来年はもっと頑張ろうと思います Pythonでは強力なwebアプリケーションフレームワークとしてDjango,Tornadoが存在します。 特にDjangoはMVC(Django…

Pythonで使ってるモジュールに詳しくなりたいので、inspectを使う

ここ、数日間、ガリガリPythonでアプリを書いていました。 今回から珍しくpydoc回りをきちんとやろうと思ったのと、 あんまり日本語情報のないモジュールを使っていたので、 中身を詳しくなるためにinspectというモジュールを使います。

Pythonで数式を扱いたい(sympyを使う)

Pythonを勉強していると、 数学が必要な場面が多々あるので、 数学を勉強しています。 しかし、数学の勉強をしているときに、 数式をそのまま扱えるといいな、と思うことがあります。 そういう時に便利なモジュールとしてsympyがあります。 これを使うとIPyt…

Pythonisataのためのsqliteクライアント:sqlite_bro

私はsqliteが好きだ。 だってサーバ立てなくていいし。 ファイルだから保存が楽だし。 私はbottleが好きだ。 1ファイルで動くから、 制約の多い環境でも動かすことができる。 ところで、pythonスクリプト一つで動く sqliteクライアントがあったら、 いざって…

Pythonで文字列日付を簡単に扱いたい(dateparserを使う)

Pythonのdatetime型に関しては以前書きました。 esu-ko.hatenablog.com しかし、文字列から日付をもっと簡単に扱えないものか・・・。 dateparserモジュールを使うと簡単に扱えるようです。 導入 pip install dateparser 使い方 文字列で日付を渡すとdatetim…

IPythonNotebookのノートがたくさんなのが嫌なのでブログに変換する

IPythonNotebook、便利ですよね。 データ分析ツールとしても良し。 コードの確認としても良し。 実際のノートとして使っても良し。 HTMLしたら共有も楽勝〜。 でもわがままな人はこう思ったりするんです。 「ノートがファイルに別れてるから、共有しにくい」…

Pythonで探索的データ分析したいのでpivottablejsを使う

Pythonのデータ分析は、pandasやnumpyのおかげで大変快適です。 しかしそうは言っても、コード書くほどじゃないんだよなあとか、 まだデータ全然わかんねえんだよなーという時があります。 そんなときに便利なモジュールがpivottablejsです。 というわけで、…

Pythonでプログレスバーを出したい(tqdmを使う)

Pythonでスクリプトを作っている時に、 ループの進捗を確認したい時があります。 ループ毎にprint等で確認してもよいのですが、 長い処理を行う場合、ターミナルの表示がムダに感じます。 そこでプログレスバーを表示するtqdmモジュールを使用します。 使い…