38
ゼロからはじめるPyData @nobolis かたやなぎ のぶこ PyLadies Tokyo #3 Python for Beginners 2015年1月23日(金)19:00 〜 21:00

PyLadies Tokyo #3: ゼロからはじめたPyData

Embed Size (px)

Citation preview

Page 1: PyLadies Tokyo #3: ゼロからはじめたPyData

ゼロからはじめるPyDataた

@nobolis

かたやなぎ のぶこ

PyLadies Tokyo #3

Python for Beginners2015年1月23日(金)19:00 〜 21:00

Page 2: PyLadies Tokyo #3: ゼロからはじめたPyData

本編の前に本業関係の宣伝です

追加スライド

Page 3: PyLadies Tokyo #3: ゼロからはじめたPyData

2015年は国際土壌年です!

IYS2015の目標食料安全保障と本質的な生態系サービスのために土壌の重要性の認識と理解を強化すること

追加スライド

Page 4: PyLadies Tokyo #3: ゼロからはじめたPyData

みなさまのエントリーお待ちしております!

優秀作品には賞金も!

追加

スラ

イド

Page 5: PyLadies Tokyo #3: ゼロからはじめたPyData

詳しい情報は国際土壌年ポータルサイトで!

追加スライド

https://internationalyearofsoils2015.wordpress.com/

Page 6: PyLadies Tokyo #3: ゼロからはじめたPyData

本編スタート

追加スライド

Page 7: PyLadies Tokyo #3: ゼロからはじめたPyData

おことわり

本スライドは、CentOSとWindowsでPythonをはじめて1年未満の初心者が自分の学んできたことをまとめたものであり、誤った知識が含まれている可能性があります。

初学者の方はより正確な情報を書籍・ネット・人等から入手することをお勧めします。

間違い等、お気づきの点がありましたらご指摘頂けると幸いです。

Page 8: PyLadies Tokyo #3: ゼロからはじめたPyData

アップロードにあたって

• 練習不足もあってはしょりすぎたプレゼンをしたこと

を反省し、すこし情報を追加してアップしています

• プレゼンでは書いていなかった部分は紫で示して

あります。

• 追加スライドにはタグがつけてあります。

追加スライド

Page 9: PyLadies Tokyo #3: ゼロからはじめたPyData

OUTLINE

• 自己紹介

• PyDataの基本ツール

• インストールについて2,3のこと

– 2台のWindowsマシンにPyDataツールを

インストールした時の感想

• Ipython notebook デモ

• Python csvkit

Page 10: PyLadies Tokyo #3: ゼロからはじめたPyData

自己紹介

@nobolis

かたやなぎ のぶこ

農水省系研究機関

研究員

Page 11: PyLadies Tokyo #3: ゼロからはじめたPyData

研究テーマ

土壌由来温室効果ガスの定量

土壌表面からのガスを測定 モデルを使って排出量推定11

大学院生時代 現在

Page 12: PyLadies Tokyo #3: ゼロからはじめたPyData

研究の流れ

モデルインプット アウトプット

土壌情報気象データ圃場管理情報etc.

温室効果ガス排出量etc.

解析

C++物質動態予測

日本全体のデータを収集モデルに適用できる形に整理

モデルが吐き出した日本全国・複数年の値を整理

予測精度を上げるために改良

研究のキモ

工夫とスキルが必要不可欠!

Page 13: PyLadies Tokyo #3: ゼロからはじめたPyData

Tech歴

• 2008年 C++で書かれたモデルをさわり始める

– 「Cプログラミング入門以前」

– 「猫でもわかるC言語プログラミング」

– コーディングが「多少はできる」と思えるようになったのはつい

最近

• 2013年 研究で扱うデータ量が著しく増加

• 2014年 PHP, VBA, Fortran, PSQL, Python,

R …

Page 14: PyLadies Tokyo #3: ゼロからはじめたPyData
Page 15: PyLadies Tokyo #3: ゼロからはじめたPyData

Tech Women Advent Calendar 2014 10日目

Page 16: PyLadies Tokyo #3: ゼロからはじめたPyData

Tech Women New year’s partyLightning Talk 15 Jan. 2015

Page 17: PyLadies Tokyo #3: ゼロからはじめたPyData

PyData = Python + Data

私の用途:

1. バイナリファイルの処理

– インプット・アウトプットデータの処理

– ファイルの分割、欠測値補完、値抽出、etc.

2. 数値計算

– 統計処理、回帰分析、 etc.

Tech Women New year’s party Lightning Talk でこのスライドを使ったところ、バイナリラブな方が世の中にいることを知りまして。

Page 18: PyLadies Tokyo #3: ゼロからはじめたPyData

バイナリ 【 binary 】 バイナリデータ /【 binary data】

• IT関連では、コンピュータが扱えるよう2進法に則って0と1の羅列(ビット列)として表現されたデータやそのような表現形式をバイナリという。

• また、そのようなデータのうち、テキスト(文字)形式ではない任意のデータ形式のこと。

IT用語辞典 e-Wordsよりこっちの意図でした。

「バイナリ」を名乗って申し訳ありませんでした。

専門用語はちゃんと調べてから利用しなければと反省しました。Eさん、バイナリ愛について教えてくださってありがとうございました。

Page 19: PyLadies Tokyo #3: ゼロからはじめたPyData

Python初心者の私でもあっというまにできたファイル処理

5月26日 Pythonスタート(CentOS6.6)

5月27日 コード1完成(10時間くらい)

5月27日 Psycopg2 (Python+PSQL)インストール

6月 5日 コード2完成(23時間くらい)

6月20日 コード3完成(18時間くらい)

自分のスキルレベルから考えると驚異の速度!

追加スライド

Page 20: PyLadies Tokyo #3: ゼロからはじめたPyData

ハードルがぐっと上がった数値計算

• 何から手を付けていいか全くわからなかった

• PyConJP2014チュートリアル「PyData入門」池内孝啓氏((株)ALBERT, @iktakahiro)に参加

全くついていけなかった。

• 指示された関連ライブラリを一通りインストール使えそうな気がしてきた。

• Rでなら書けるのにPythonでは書けない日々Pythonの勉強会に参加した。

追加スライド

Page 21: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

1. Python 2.x系/3.x系

2. Numpy

3. pandas

4. Matplotlib

5. Ipython/Ipython notebook

6. Sympy

7. Scikit-Learn

8. SciPy

プレゼン準備中に知った。

Page 22: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

1. Python 2.x系/3.x系

– Linux系PCには最初からインストールされている

– 3系で問題ない by @iktakahiro

– 自分自身は結果的に両方使ってしまっている。

• あまりよいやり方ではない?

• 3系の方がやはり利用できるツールは多い

• バージョン依存を実践で学べるというメリットはある

コマンドラインでpythonと打ったら起動

Page 23: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

2. Numpy

– Numerical Python

– Pythonで科学計算をするためのパッケージ

– 強力な多次元配列オブジェクト

– C, C++, FORTRANのコードとPythonを結合・統合する

ツール

– 線形代数、フーリエ変換、乱数発生

– データの格納・操作が効率的

– 配列の数学的演算を行う関数http://www.numpy.org/

Page 24: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

3. pandas

– panel data + Python data analysis

– Pythonのデータ分析ライブラリ

– 様々なフォーマットのファイルからのデータ読み書き

• CSV, txt, Excel, SQLデータベース等

– DataFrame

• 2次元の表形式・列指向のデータ構造オブジェクト

http://pandas.pydata.org/

Page 25: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

3. pandas

– DataFrame

• データの並び替え、欠損値の取り扱い、再形成、スライス、

ダイシング、集約、部分集合の選択が容易

• Rのdata.frameと似ているがより多機能らしい

http://pandas.pydata.org/

Page 26: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

4. Matplotlib

– Mathematical + plot + library ?

– Python向け2D描画ライブラリ

– グラフ等データの可視化

– MATLABライクなインターフェイス

http://matplotlib.org/

Page 27: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

5. IPython/IPython notebook

– Pythonを対話的に実行するためのシェル

– Pythonのシェルを拡張したもの

• 型推定の強化

• コードハイライティング、タブによる補完

• Python用に開発されたが他の言語でも使える

– IPython notebook

http://ipython.org/

Page 28: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

5. IPython/IPython notebook

– IPython notebook

– ウェブブラウザ上で動作

– インラインで図の表示も可能

☞ コードと結果がブラウザ上で同時に見られるため

試行錯誤しながら数値計算するのにお勧め

☞ メモもできるので研究ノート的な使い方も

http://ipython.org/

Page 29: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

6. Sympy

– 記号計算ライブラリ

• eとかpiとか∞を記号として扱える

– 日本語の詳しいサイト

http://turbare.net/transl/scipy-lecture-

notes/advanced/sympy.html

私はまだ使ったことがないけど、

複雑な数値計算に役立ちそう。http://www.sympy.org/en/index.html

Page 30: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

7. Scikit-learn

– 機械学習ライブラリ

利用していないのでわかりません

Page 31: PyLadies Tokyo #3: ゼロからはじめたPyData

PyDataの基本ツール

7. SciPy

– 科学計算のためのオープンソースソフトウェアのコレクション

– SciPyライブラリ

• 数値計算ルーティーン

– SciPy Stack core packages

=Python + NumPy + SciPy library

+Matplotlib +pandas + Ipython

+SymPy + nose

nose=テストフレームワークhttp://www.scipy.org/

☞バージョンにこだわらなければSciPyでOK?

Page 32: PyLadies Tokyo #3: ゼロからはじめたPyData

インストール2台のWindowsマシンにPyDataツールをインストールした時の感想

1. ライブラリの個別インストール

• チュートリアルで個別インストールの指示があったため

• 個別インストールできたがそれなりの時間がかかった

2. Python(x, y)

• 学術研究用途に特化したディストリビューション

• プラグインとして多くのライブラリがインストールされる

• インストールに時間がかかるため手間感は1と同じ

• ライブラリのバージョンが最新ではない

https://code.google.com/p/pythonxy/

ディストリビューションとしてはanacondaとかも。

Page 33: PyLadies Tokyo #3: ゼロからはじめたPyData

Python(x, y)のPlugins

185?!

Page 34: PyLadies Tokyo #3: ゼロからはじめたPyData

iPython notebookを使ったデモ

http://nbviewer.ipython.org/github/nobolis/PyLadies03_demo/blob/master/PyLadies3_demo_v2.ipynb

Page 35: PyLadies Tokyo #3: ゼロからはじめたPyData

ここ重要。

iPython notebookを終了するときはControl-C(確認不要な時はControl-Cを2回)

Page 36: PyLadies Tokyo #3: ゼロからはじめたPyData

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でプレゼンを見て、おお!これは!と思ったのでシェア

Page 37: PyLadies Tokyo #3: ゼロからはじめたPyData

参考文献

Page 38: PyLadies Tokyo #3: ゼロからはじめたPyData

Thank you for your attention !