PyLadies Tokyo #3: ゼロからはじめたPyData
-
Upload
katayanagi-nobuko -
Category
Technology
-
view
1.170 -
download
4
Transcript of PyLadies Tokyo #3: ゼロからはじめたPyData
ゼロからはじめるPyDataた
@nobolis
かたやなぎ のぶこ
PyLadies Tokyo #3
Python for Beginners2015年1月23日(金)19:00 〜 21:00
本編の前に本業関係の宣伝です
追加スライド
2015年は国際土壌年です!
IYS2015の目標食料安全保障と本質的な生態系サービスのために土壌の重要性の認識と理解を強化すること
追加スライド
みなさまのエントリーお待ちしております!
優秀作品には賞金も!
追加
スラ
イド
詳しい情報は国際土壌年ポータルサイトで!
追加スライド
https://internationalyearofsoils2015.wordpress.com/
本編スタート
追加スライド
おことわり
本スライドは、CentOSとWindowsでPythonをはじめて1年未満の初心者が自分の学んできたことをまとめたものであり、誤った知識が含まれている可能性があります。
初学者の方はより正確な情報を書籍・ネット・人等から入手することをお勧めします。
間違い等、お気づきの点がありましたらご指摘頂けると幸いです。
アップロードにあたって
• 練習不足もあってはしょりすぎたプレゼンをしたこと
を反省し、すこし情報を追加してアップしています
• プレゼンでは書いていなかった部分は紫で示して
あります。
• 追加スライドにはタグがつけてあります。
追加スライド
OUTLINE
• 自己紹介
• PyDataの基本ツール
• インストールについて2,3のこと
– 2台のWindowsマシンにPyDataツールを
インストールした時の感想
• Ipython notebook デモ
• Python csvkit
自己紹介
@nobolis
かたやなぎ のぶこ
農水省系研究機関
研究員
研究テーマ
土壌由来温室効果ガスの定量
土壌表面からのガスを測定 モデルを使って排出量推定11
大学院生時代 現在
研究の流れ
モデルインプット アウトプット
土壌情報気象データ圃場管理情報etc.
温室効果ガス排出量etc.
解析
C++物質動態予測
日本全体のデータを収集モデルに適用できる形に整理
モデルが吐き出した日本全国・複数年の値を整理
予測精度を上げるために改良
研究のキモ
工夫とスキルが必要不可欠!
Tech歴
• 2008年 C++で書かれたモデルをさわり始める
– 「Cプログラミング入門以前」
– 「猫でもわかるC言語プログラミング」
– コーディングが「多少はできる」と思えるようになったのはつい
最近
• 2013年 研究で扱うデータ量が著しく増加
• 2014年 PHP, VBA, Fortran, PSQL, Python,
R …
Tech Women Advent Calendar 2014 10日目
Tech Women New year’s partyLightning Talk 15 Jan. 2015
PyData = Python + Data
私の用途:
1. バイナリファイルの処理
– インプット・アウトプットデータの処理
– ファイルの分割、欠測値補完、値抽出、etc.
2. 数値計算
– 統計処理、回帰分析、 etc.
Tech Women New year’s party Lightning Talk でこのスライドを使ったところ、バイナリラブな方が世の中にいることを知りまして。
バイナリ 【 binary 】 バイナリデータ /【 binary data】
• IT関連では、コンピュータが扱えるよう2進法に則って0と1の羅列(ビット列)として表現されたデータやそのような表現形式をバイナリという。
• また、そのようなデータのうち、テキスト(文字)形式ではない任意のデータ形式のこと。
IT用語辞典 e-Wordsよりこっちの意図でした。
「バイナリ」を名乗って申し訳ありませんでした。
専門用語はちゃんと調べてから利用しなければと反省しました。Eさん、バイナリ愛について教えてくださってありがとうございました。
Python初心者の私でもあっというまにできたファイル処理
5月26日 Pythonスタート(CentOS6.6)
5月27日 コード1完成(10時間くらい)
5月27日 Psycopg2 (Python+PSQL)インストール
6月 5日 コード2完成(23時間くらい)
6月20日 コード3完成(18時間くらい)
自分のスキルレベルから考えると驚異の速度!
追加スライド
ハードルがぐっと上がった数値計算
• 何から手を付けていいか全くわからなかった
• PyConJP2014チュートリアル「PyData入門」池内孝啓氏((株)ALBERT, @iktakahiro)に参加
全くついていけなかった。
• 指示された関連ライブラリを一通りインストール使えそうな気がしてきた。
• Rでなら書けるのにPythonでは書けない日々Pythonの勉強会に参加した。
追加スライド
PyDataの基本ツール
1. Python 2.x系/3.x系
2. Numpy
3. pandas
4. Matplotlib
5. Ipython/Ipython notebook
6. Sympy
7. Scikit-Learn
8. SciPy
プレゼン準備中に知った。
PyDataの基本ツール
1. Python 2.x系/3.x系
– Linux系PCには最初からインストールされている
– 3系で問題ない by @iktakahiro
– 自分自身は結果的に両方使ってしまっている。
• あまりよいやり方ではない?
• 3系の方がやはり利用できるツールは多い
• バージョン依存を実践で学べるというメリットはある
コマンドラインでpythonと打ったら起動
PyDataの基本ツール
2. Numpy
– Numerical Python
– Pythonで科学計算をするためのパッケージ
– 強力な多次元配列オブジェクト
– C, C++, FORTRANのコードとPythonを結合・統合する
ツール
– 線形代数、フーリエ変換、乱数発生
– データの格納・操作が効率的
– 配列の数学的演算を行う関数http://www.numpy.org/
PyDataの基本ツール
3. pandas
– panel data + Python data analysis
– Pythonのデータ分析ライブラリ
– 様々なフォーマットのファイルからのデータ読み書き
• CSV, txt, Excel, SQLデータベース等
– DataFrame
• 2次元の表形式・列指向のデータ構造オブジェクト
http://pandas.pydata.org/
PyDataの基本ツール
3. pandas
– DataFrame
• データの並び替え、欠損値の取り扱い、再形成、スライス、
ダイシング、集約、部分集合の選択が容易
• Rのdata.frameと似ているがより多機能らしい
http://pandas.pydata.org/
PyDataの基本ツール
4. Matplotlib
– Mathematical + plot + library ?
– Python向け2D描画ライブラリ
– グラフ等データの可視化
– MATLABライクなインターフェイス
http://matplotlib.org/
PyDataの基本ツール
5. IPython/IPython notebook
– Pythonを対話的に実行するためのシェル
– Pythonのシェルを拡張したもの
• 型推定の強化
• コードハイライティング、タブによる補完
• Python用に開発されたが他の言語でも使える
– IPython notebook
http://ipython.org/
PyDataの基本ツール
5. IPython/IPython notebook
– IPython notebook
– ウェブブラウザ上で動作
– インラインで図の表示も可能
☞ コードと結果がブラウザ上で同時に見られるため
試行錯誤しながら数値計算するのにお勧め
☞ メモもできるので研究ノート的な使い方も
http://ipython.org/
PyDataの基本ツール
6. Sympy
– 記号計算ライブラリ
• eとかpiとか∞を記号として扱える
– 日本語の詳しいサイト
http://turbare.net/transl/scipy-lecture-
notes/advanced/sympy.html
私はまだ使ったことがないけど、
複雑な数値計算に役立ちそう。http://www.sympy.org/en/index.html
PyDataの基本ツール
7. Scikit-learn
– 機械学習ライブラリ
利用していないのでわかりません
PyDataの基本ツール
7. SciPy
– 科学計算のためのオープンソースソフトウェアのコレクション
– SciPyライブラリ
• 数値計算ルーティーン
– SciPy Stack core packages
=Python + NumPy + SciPy library
+Matplotlib +pandas + Ipython
+SymPy + nose
nose=テストフレームワークhttp://www.scipy.org/
☞バージョンにこだわらなければSciPyでOK?
インストール2台のWindowsマシンにPyDataツールをインストールした時の感想
1. ライブラリの個別インストール
• チュートリアルで個別インストールの指示があったため
• 個別インストールできたがそれなりの時間がかかった
2. Python(x, y)
• 学術研究用途に特化したディストリビューション
• プラグインとして多くのライブラリがインストールされる
• インストールに時間がかかるため手間感は1と同じ
• ライブラリのバージョンが最新ではない
https://code.google.com/p/pythonxy/
ディストリビューションとしてはanacondaとかも。
Python(x, y)のPlugins
185?!
iPython notebookを使ったデモ
http://nbviewer.ipython.org/github/nobolis/PyLadies03_demo/blob/master/PyLadies3_demo_v2.ipynb
ここ重要。
iPython notebookを終了するときはControl-C(確認不要な時はControl-Cを2回)
Python csvkit
• Python csvkit
– pyhackで@atelierhide氏が紹介
– @iktakahiro氏がPython Advent Calendar 2014 24日目の記事で紹介
– コマンドラインでCSVやTSVファイルを取り扱える便利なライブラリ
https://csvkit.readthedocs.org/en/0.9.0/
Python mini-hack-a-thonでプレゼンを見て、おお!これは!と思ったのでシェア
参考文献
Thank you for your attention !