s01 t1 tsuji_pylearn_ut_01

11
Pythonでプログラムを作ろう! 辻 真吾 @tsjshg

Upload: takeshi-akutsu

Post on 14-Aug-2015

469 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: S01 t1 tsuji_pylearn_ut_01

Pythonでプログラムを作ろう!

辻 真吾  @tsjshg  

Page 2: S01 t1 tsuji_pylearn_ut_01

自己紹介 •  辻真吾(1975年8月生まれ)  •  今は、東大先端研で働いてます  – 生命情報(特にがん)のデータ解析  

•  Pythonスタートブック(技術評論社)  

•  プログラム言語  – BASIC/Logo  小学生の時  – C/C++   大学生の時  –  Java,  SQL   ITベンチャー時代  – Python    20代の終わりから   

Page 3: S01 t1 tsuji_pylearn_ut_01

The  RedMonk  programming  language  ranking(2015.1)

http://redmonk.com/sogrady/2015/01/14/language-­‐rankings-­‐1-­‐15/

Page 4: S01 t1 tsuji_pylearn_ut_01

Zen  of  Python •  import  this  –  There  should  be  one-­‐-­‐  and  preferably  only  one  -­‐-­‐obvious  way  to  do  it.  

•  Battery  included  – 豊富な標準ライブラリ  

•  初心者にやさしい  – プログラミング経験者も書くのが楽  

•  https://www.python.org  – 本家のサイト  

•  http://www.python.jp  – ドキュメントの日本語訳も豊富  

Guido  van  Rossum

Page 5: S01 t1 tsuji_pylearn_ut_01

2  or  3?

•  これから始めるなら、3  •  何か理由があるなら、2.7  •  http://python3wos.appspot.com  – 外部ライブラリの対応状況を一目で見られるサイト  

– ほとんど対応済み  

•  Python3  – デフォルトの文字コードがUTF-­‐8  

•  MacOSXとの相性も抜群  

Page 6: S01 t1 tsuji_pylearn_ut_01

フェアに •  遅いでしょ?  – 軽量言語ですから、もちろん書きやすさ優先  – 数値計算では、for文を使わない  – NumbaなどJITコンパイラもある  

•  なんで2と3互換性ないの?  – 痛い! さらなる進化のため(だと思う)  – 文字列の扱いなど、やっぱり互換性を捨ててまで3を作った理由はある  

•  これからは関数型言語でしょ?  – 8月号のSoftwareDesignに記事を書く予定  

Page 7: S01 t1 tsuji_pylearn_ut_01

なんと言ってもデータ解析 •  データ解析におすすめの外部ライブラリ  – Numpy,  Scipy  

•  強力な行列演算や、基本的な統計関数などを収録  – Matplotlib  

•  Matlabの文法に似た書き方で、データの可視化ができる  

•  強力すぎて、ちょっと使いにくい(でも好き)  – Pandas  

•  超高性能な数値データを扱うためのライブラリ  •  私にエクセルを使うのを止めることを決意させた  

–  Ipython  •  Pythonインタラクティブシェルの強化版  •  Notebookと呼ばれるWebブラウザ経由の機能がすごい

Page 8: S01 t1 tsuji_pylearn_ut_01

インストールするの面倒でしょ?

ヒューストンに本拠地を置く、CONTINUUM社が無料で配布  数値計算系のライブラリはほとんど入っているので、手軽でおすすめ  (もちろん3対応)

Page 9: S01 t1 tsuji_pylearn_ut_01

データ解析以外で

Pythonで作られたドキュメント作成ツール  比較的簡単なrst形式で原稿を書くと、綺麗にHTML化してくれる。  (PDFやePub形式にもなる)

Page 10: S01 t1 tsuji_pylearn_ut_01

私の開発環境

•  Emacs24.3+Pythonシェル(IPython)  •  MacではGUIがCarbonからCocoaになったためか、Emacsの動作がちょっと不安定  

•  PyCharmよさそう  – Emacsのキーバインド再現が結構忠実

Page 11: S01 t1 tsuji_pylearn_ut_01

まとめ

•  データ解析のためなら、RかPython  – これは間違いない  

•  Rは汎用言語ではないので、なんでもできるPythonを選んで損はない  

•  次回以降は、みなさんのご要望を取り入れつつ、機械学習の話?