SSブログ

Pythonライブラリ厳選レシピ [読書]

Python ライブラリ厳選レシピ読了。著者の皆様より献本いただきました。ありがとうございます。
パッケージ毎に章立てが分かれていて
1. パッケージ名
2. ドキュメント参照先
3. インストール方法(標準パッケージ以外)
4. 説明
5. コード例(インタラクティブシェルの実行例)
が説明してある。

文法をだいたい理解できて
「例えばxxをやりたい場合何を使えばよいか?」
について知りたい人が読むのによさそう。

気をつけるべき点は Python3.4 をベースにしているということ。
Python2.7 を仕事に使いたいが、Python2.7 と 3 の違いはよくわかってないという人が読むとかえって混乱しそう。

ざっと見た感じ誤字や組版上の間違いが少なく安心して読めると思う。(自分が発見できなかっただけかもしれないが)
世の中には、なぜかコード例なのに typo があって、
「これ動かしてねーだろー」
とか、Python なのに編集の人が理解してなくてインデントがずれているという本もあるらしいが、そういうことはなさそう。

リファレンスマニュアルの単なるコピペ本でなく、必要であればサードパーティのパッケージも解説されていて、サンプルコード例は、挙動を説明するためによく考えられているように思えた。
あと、サンプルコード例を見て
「やっぱ Python3 は、文字列周りの扱いに変な雑用コードが必要ないから読みやすいなー」
と思った。

これから Python を学ぶ人は、
書籍 http://nakagami.blog.so-net.ne.jp/2013-03-20 か、
Web http://diveintopython3-ja.rdy.jp/ で Python3 の文法と基本的な使い方を学んで、次に、この本でよく使うパッケージの概要を掴んで、そのあとは、専門分野の書籍や Python のリファレンス http://docs.python.jp/3/library/index.html を参照しながらプログラミングするという段取りがよいと思う。

小版でページ数も限られているため、説明できるパッケージは限りがある。だから、あれもない、これの説明がないという不満はあるかもしれないが、紹介されているパッケージは、Web サーバーサイドのプログラマーも、pandas で DataFrame 操作してるひとも使いそうなパッケージばかりなのでリファレンス的な使い方(もするが)よりも、まずは、一通り読んでみるのがよいと思う。


Cython [読書]

Cython ―Cとの融合によるPythonの高速化読了

本家 O'reilly から出てるのは知ってたけど、まさか日本語訳が出るとは思わなかった。しかも、こんなに早く。
Cython はニッチだけれども、Python と C の糊付けとして、非常にうまく動いているので、みんなもっと使えばよいと思っている。

内容的には、Python と C をある程度使ったことがないと読みこなすのは難しいし、入門というよりちょっと使ってみた人が読むとよいような内容のように思う。

Cython のドキュメントは割としっかりしたのがあって、
http://docs.cython.org/

和訳ドキュメントは 0.17.1 のものがあって、Cython の最新は 0.21 なんだけど、まあ、そんなに困らない
http://omake.accense.com/static/doc-ja/cython/

まずは、これらのドキュメントを読んで、ちょっと Cython の練習をしてから、この本を読むのが良いのではないかと思った。

ちなみに、 C++ との連携について書いた章を読んで、「僕には Cython から C++ 使うのは無理だな」と思った。

Web API The Good Parts [読書]

Web API: The Good Parts読了

おおざっぱに言って、HTTP プロトコルで json を返す API の
- URL
- HTTP ヘッダー
- パラメーター
- レスポンスボディ
- ステータスコード
などについて、既存のサービスを参考にベストプラクティスを紹介するような本。

HTTP プロトコルの基本的なところをわかっていれば、割と好きなところから
気楽によみもの的に読める。

僕自身は、Web API を設計したり使ったりする仕事をしてなくて縁がないため、
教養のために読んでみたのがだ、社内には既に読んだ人が意外と多かった。


自然言語処理の基礎 [読書]

自然言語処理の基礎読了
2010年出版の大学のテキスト。なんか、講義のテキストっぽい書籍を久しぶりに読んだ気がする。

目当ては、3章の形態素解析のページ。
形態素解析器 janome のドキュメントで紹介されていて
http://mocobeta.github.io/janome/
それで読んでみたんだけど、1章〜3章までは大体理解できた(と思う)。
これを読めば形態素解析器が書けたか、というと疑問ではあるが、janome のソースコードを読む助けにはなった。

前後の章とはあまり関係なくて、1、2章を読んでなくても3章は読みこなせるし、ページ数は少ないので、必要があって図書館で読める人は3章だけ読むと良いと思う。

4章以降は、構文解析、意味解析、文脈解析、応用、といったところだが、オープンソースで気軽に使える(日本語の)実装がないので、読んでもよくわからないなぁ、、、という感想。
(たぶん、実装があってもわからないけど)

ただ、これが学部の3、4年の半年くらいの講義のテキストだそうなので、機械翻訳なんて実用段階の技術なんだろう。

Python エンジニア養成読本 [読書]

Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)読了・・・というか出版前にレビューのお手伝いをした

他の「養成読本」シリーズを読んだことのある方はわかると思うが、これは入門書ではあるけれども プログラミング言語 Python の入門書とも、プログラミング言語の入門書ともちょっと違う。

何らかのプログラミング言語の素養のある人が
「Python で(仕事で)開発をするために知っておかないといけないことって何?」
というようなことを知りたいときに読む本。

内容は、 Python のことが多いものの GitHub でのソースコード管理や Sphinxでのドキュメント管理、Ansible による構成管理もあって、(Python で書かれてるけど使うのにPython いらないものから、そもそも Python で書かれていないものの解説)Python あんまり関係ない。
でもそれらは、Pythonでの開発の現場によくあるもなので
「よくわかる Pythonの世界」
という意味ではあっていると思う。例えば、 Perlでは CPAN、 Ruby では gem、 Java なら Marven Central じゃあ、Pythonは?みたいなのとか、そんなの。

特に参考になるのは注記の参考 URL 。これをたどっていくと雰囲気わかる。
ただ、すぐに古くなりそうなので、この春から Python 使う、見たいな人は急いで読むべし。
全ての章をくまなく読む必要はなくて、逆に全てのページを読む必要がある人ってあまりいないと思う。各自が必要そうな章を読めば良いと思う。

そんなわけで、この本の他に Python でプログラミングする勉強は必要。
そういえば pip で外部パッケージをインストールするところなんか、ほんのさわりしか書いてない
ちなみに、この本も Python2.7 を対象に書かれている。

以上ふまえると、特に
「R言語とか Excelでデータ解析してたんだけど、どうも最近は Python という奴を使うのがいいらしい」
と思ってる人には良い内容かと。最近そういう人が増えてる雰囲気なので。
そういう人は、この本を読んだあと、pandas の人が書いた本を読むのがよいかと
http://nakagami.blog.so-net.ne.jp/2014-10-05

そういえば、大切なことを忘れていた。
著者(の一部)いわく、この本を「フェレット本」と呼んでください、とのこと。

Python 文法詳解 [読書]

Python文法詳解これは、「第5回 Pythonもくもく会 @アライドアーキテクツ」の記録(その2)です
http://mokupy.connpass.com/event/11807/

出版されてすぐに買った気がする。PyConJP の会場では買わなかったけど、たぶん昨年の9月頃。
ひととおり読んだつもりだったが、まだブログに書いてないようだ。
書くのを忘れたのか、全部は読み切ってなかったのか?
最近、もう一回最初から読み始めて、今日一通り読了。

CPython3.3 以降の
- 文法
- ビルトインオブジェクト
の解説。

僕の感想を手短に言うと
- 知らないこといっぱいあるなぁ
- 単純な規則の組み合わせでうまいこと動いているんだなぁ
という、相反する2点。

PyPI からインストールできる有名なパッケージはおろか、ビルトインのパッケージについても説明がない。
文法や内部的な処理について、こんなに詳しく知らなくても Python のプログラムは書けるようになると思うので、万人向けではないと思う。
Python でうまくプログラムが書けるようになりたいと思うなら、パッケージの使い方を例示した本を読んだほうが良いと思う。
あえて言うなら「Python のことなら何でも知っておきたい人」向け。

ただ、僕自身は面白かったし、英語でもこういう書籍はないので、英訳して出版してもいいんじゃないだろうか。

この本の出版以降にリリースされる Python に言語としての機能もどんどん追加されていくとは思うけど、
この本に書いてある内容は古くならないので、「とりあえず買っておく」「いちど読んでおく」でも損しない本だと思った。



Python プロフェッショナルプログラミング第2版 [読書]

Pythonプロフェッショナルプログラミング第2版本日発売。
自分の読んだ本は忘れないうちに記録するようにしているのですが、この本は執筆後半のレビューに参加させていただいたので一応読了・・・と。

今のご時世、日本語の技術書が版を重ねるのは難しいことなので、初版が好評だったんですね。
初版の感想はこれ↓
http://nakagami.blog.so-net.ne.jp/2012-04-01
Python の本というより BeProud という会社の業務マニュアルの書籍化というのは引き続きです。

変更内容については清水川さんの Blog の紹介がわかりやすいと思います
http://www.freia.jp/taka/blog/python-professional-programming-2nd/index.html
http://www.freia.jp/taka/blog/python-professional-programming-2nd-mihon/index.html

初版の頃は Python のパッケージの本命がなかったり、Django に migration の機能がデフォルトで存在してなかったのですが、現在はいろいろ改善されたというのもあり、この状況下で版を重ねることができて良かったと思いました。
パッケージインストールは pip で統一され Django は migration も一緒に説明されてわかりやすくなったと思います。
また、全体が整理され章ごとの参照がされて良くなりました。

Skype, Google App Engine, Trac, Fablic の説明が削除されました。しょうがないですね。
Ansible, Slack の説明が追加されました。時代ですね。

今回、初めて書籍レビューをしてわかったことは
「書籍レビューなら積ん読にならない」
「わからないなりに一生懸命読む」
ということです。今後も機会があれば積極的に書籍レビューをさせて頂きたいと思いました。

どんなに売れても会社の業績にはあまり関係ないのでは、と思うのですが(知らない)、たくさん売れると3年後くらいに第3版が出せると思いますので、皆さんぜひ買ってください。

死んで生き返りましたれぽ [読書]

死んで生き返りましたれぽ漫画が読みたいかみさんが買ってきた。
30分で読めた。

なんだか泣けた。
生きているのって、それだけで素晴らしいし家族ってありがたいと思う。
闘病(?)中に、自分がなんだかわからないことから始まって、漠然と死ぬかもしれない、死ぬのは嫌だという感情や周囲への感謝、絵を描きたいと思ったことが率直に書かれていてよかった。

なんだか、ボロボロ泣けて、読書風景を脇で見ていたかみさんと娘に笑われた。
なんだか、最近、死んじゃう話より生きる話のが泣ける。

マンガは pixiv で読めるらしいけど、書籍は主治医のコメントや、診断書の一部が掲載され、その時々に思ったことなどが補足されている。




運は数学にまかせなさい [読書]

運は数学にまかせなさい――確率・統計に学ぶ処世術 ((ハヤカワ文庫NF―数理を愉しむシリーズ))読了

要するに確率統計の教養本。
数式をできるだけ使わないようにしつつ確率統計が生活のどんなところに役立っているかとか、こういう数字のごまかしにはだまされないようにしようとか、そんなの。
選挙前の予想の確度とか、飛行機が落ちる確率とか、ギャンブルはもうからないとかモンティホール問題とか。
ベイズ統計の簡単な紹介みたいなのは載ってたけど数式で、なるほどー、みたいなとこまではいかない感じ。メールのスパム判定はベイズ統計でしてるんですよー、って説明程度。

世間一般におもいしろいかどうかはわからないけど、僕は面白かった。
そして、もうすこしちゃんとした確率統計の本も読んでみようかなと思った。

最近、こういう一般の人向けの統計の本がはやりとして出てるみたいだけど、内容としてはいい方じゃないかな。ほかの本を読んでないのでわからないけど。
5年くらい前に出た本のさらに文庫化なので、取り上げてるテーマが微妙に古いといえば古い。

ハヤカワの翻訳本って SF だけじゃなくてこんなのもあるのね、と思った。

Pythonによるデータ分析入門 [読書]

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理読了
以前に買ったときに、一通り読んだはずだがさっぱり覚えてない。
今回、 (第47回)Python mini Hack-a-thon
http://pyhack.connpass.com/event/8554/
で、もう一度読み直し。
やっぱり、こういうのは、読みながらやってみないと全然だめだと実感した。

内容的には、データ分析入門というより、pandas, matplotlib, numpy の使い方入門という感じで統計解析に関する数学的知識はまったく必要なかった。データ解析なんて関係ないという人もでも Excel で集計してグラフにしてるような仕事の人は読んでみると使いどころあるかも。

手元の Ubuntu 14.04 に ipython は apt-getで。numpy, scipy, matplotlib は
pip でインストールした。
pip でインストールするもののために apt-get install したライブラリはいろいろ
あったが、メモってない。メモっておけばよかった。
scipy をインストールするために Fortran をインストールする必要があったが、
結局、この本で scipy の解説はなかった。
Ubuntu は Server 版で GUI を持ってなかったが、 ipython notebook で動かして
ブラウザでアクセスすれば特に困ることなかった。
ipython notebook すごい


書籍の説明例のデータの GitHub リポジトリがあるので
https://github.com/pydata/pydata-book
それを clone してブランチを作成して実行した iPython Notebook のファイルを作った
https://github.com/nakagami/pydata-book/tree/pyhack

- pyhack47.ipynb 昨日本を読みながら書いた。基本的な使い方。
- corr.ipynb 今日書いた、相関関数に関するもの。

iPython Notebookの--pylab Inlineは使うのをやめようという話
http://yagays.github.io/blog/2014/08/15/ipython-notebook-matplotlib-inline/
というのを読んだので、書籍中では

ipython notebook --pylab=inline
を実行していたが
ipython notebook --matplotlib=inline
で動くように書き直した

(2014-10-18追記)CentOS6 でインストールする記事発見
http://memo.yomukaku.net/entries/jbRkQkq