Python学習チャンネル by PyQ

Pythonのオンライン学習プラットフォームPyQのオフィシャルブログです

【Pythonエンジニア列伝:vol.5-2】片柳薫子さん その2〜「PythonユーザのためのJupyter[実践]入門」とPyQについて聞きました〜

この記事はPythonエンジニア列伝第5回の2記事目です

Pythonエンジニア列伝は、「Pythonエンジニアたちのインタビューを通して、Pythonを使う人達がどんな人なのか、どんな場面で活用しているのか、なぜPythonに出会ったかなどを紐解く」連載です。

連載はトピックごとになっているので記事単体でも読むことができます。

f:id:nana_yu:20180704184109p:plain

バックナンバー

  • 導入・索引…片柳さんのご紹介とインデックスページです。
  • その1…農業研究分野でのPythonデータ処理について

pyq.jp

「PythonユーザのためのJupyter[実践]入門」について

f:id:nana_yu:20180704184151j:plain

f:id:nana_yu:20180702172032j:plain
kameko片柳さんはPythonのライブラリであるJupyter Notebookとデータを可視化するライブラリを取り扱った書籍、通称「Jupyter本」を書かれていますが、どういった経緯で執筆に至ったのでしょうか?

PythonユーザのためのJupyter[実践]入門

gihyo.jp

片柳著者の1人である池内さん(@iktakahiro)に「書こうよ」と最初に誘っていただきました。

「Jupyterの名前を冠したPythonの本ってないよね」ということで。本の著者名の記載順は実は誘われた順なんです。一番最初が池内さんになっているように、彼が発起人です。既に技術書の執筆経験のあった彼が、その編集者に打診して話を進めました。

f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172029j:plain
haruへえ、これ参加順なんですね。片柳さんは二番目に書かれていますね。

片柳はい。私はそのときはまだまだ本をかけるレベルじゃないと思っていたんですよ。それでも勉強すればなんとかなるだろうと思っていたのと、Pythonの普及活動をしたいこともあって二つ返事で引き受けました。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172032j:plain
kameko出版までの経緯で印象に残っていることはありますか?

片柳JupyterはPythonのツールの一つなので、そのような狭い範囲に着目した本を出すことは、Jupyterを知らない人にとっては「何それ美味しいの」という印象を与える懸念はあって。とはいえ扱う範囲を広げてというのは違うな、ということで「自費出版でやろっか」という話も出ていました。

ただその一方で出版社さんの側に「Jupyter来てる!」という感覚があったみたいで、最終的に出版の話が進みました。

f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180704184517j:plain

f:id:nana_yu:20180702172032j:plain
kamekoとてもいいタイミングで発売された感覚がありますよね。発売当初、今買うべき本だ!と感じた記憶があります。

片柳そうですね。我々は先を行っていた!と思いました。いいタイミングで出版できたと思います。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172029j:plain
haru本の中で、片柳さんはどの部分を担当したんですか?

片柳私はMatplotlibを扱う4章・5章の大部分を担当しました。PyQとのコラボ問題もこのあたりから出題してますよね。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180427091332p:plain
nao_yはい。基本はMatplotlibに関しての問題です。あとは、使用頻度の高そうな、pandasを使ったExcelの読み込みについてを出題しています。

f:id:nana_yu:20180702172029j:plain
haru執筆にはどのくらいの時間をかけたんですか?

片柳お声掛けをいただいたのが2016年で、その年の9月にあるPyCon Jpに合わせて出そうとしたんですけれど、結局一年かかりましたね。去年の5月の連休は全部執筆に充て、夏休みは校正作業に充てるという感じでした。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172032j:plain
kameko続編の企画とかありますか?

片柳今のところ考えてないです。情報はどんどん新しくなっていっているので、どちらかというと第二版を出すことはあるかもしれません。
f:id:nana_yu:20180629171145j:plain

PyQについて

f:id:nana_yu:20180702172032j:plain
kamekoPythonの1プログラマーとして、オンライン学習サービスであるPyQについてどう思いますか?

片柳まずはサービスが良いと思っていて。休んだ時はお金取らないとか親切設計になっていますよね。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172032j:plain
kamekoそれが健全な形だとチームで合意して月途中の返金機能を実装したんですけど、あまり他にない形式だからか、今でも休会手続きは月末が多いです(笑)

2019年8月より、PyQの課金形式が変更されます

返金処理に関連するクレジットカードエラーの多発により、PyQ購読解除時の返金仕様が変更されます。 プラン変更の際の返金処理に変更はありません。詳細は下記の記事でお知らせしています。

blog.pyq.jp

片柳慣れている形式からくる心理的な問題もありそうですよね。やはりシステムが違うと理解してもらうのが大変だなと思います。でもやっぱり良心的なサービスだなと思うので、初めてPython始めたい人には薦めたいですし、学習できる範囲も広いので、私も機械学習に手をつける時はやろうかなと思います。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172029j:plain
haru問題などについてはどうでしたか?

片柳実際にクエストに触れたのはJupyter本とのコラボ問題と関連するJupyterの初心者向けの問題だけなので、出題に対してどうこうはいえないのですが、実際にPyQの中でJupyterが動いていて、これはけっこう手間がかかったのではないだろうか、という印象を持ちました。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180702172032j:plain
kamekoJupyter Notebookに関してはブラウザ上で動かせるようにがんばりました。

片柳PyQ問題作成の際にはMatplotlibのコードスタイルの違いでPyQスタッフと少し議論しました。PyQではMATLAB-styleを採用していたんですが、Jupyter本ではこだわってOOP-styleで記載しています。コラボ問題ではそちらで統一してもらいました。
f:id:nana_yu:20180629171145j:plain

二つのコーディングスタイル OOP-styleとMATLAB-style

Matplotlibには数値計算や統計計算に強いMATLABというツールを参考に設計されたという経緯があるため、暗黙的な動作が多いなどPythonらしくない書き方があります。

PyQのMatplotlibの問題ではMATLABに寄せたコーディングスタイル(PythonユーザのためのJupyter[実践]入門ではMATLAB-styleと呼びます)を採用しています。

一方、「PythonユーザのためのJupyter[実践]入門」では動作を明示的にしたPythonらしいコーディングスタイル (OOP-style)を採用しています。これに合わせてコラボレーション問題のコードはOOP-styleになっています。

OOP-styleとMATLAB-styleについては PythonユーザのためのJupyter[実践]入門内で「Matplotlibでグラフを描画する2つのアプローチ (P. 248-254)」に詳述されています。

f:id:nana_yu:20180427091332p:plain
nao_y結果として、二種類のスタイルが存在すること、それぞれの内容を解説できたのでよかったと思っています。自分もどちらがいいか、どちらのスタイルで書くかを意識せずに使っていたと気づきました。

片柳みなさん結構、意識せず書いていると思います。ただ、意識して統一したスタイルで書いたほうがPythonとして学びやすいです。OOP-styleの方がPythonの設計思想に合わせたスタイルなので、個人的にもこちらで書くようにしていますし、人にも薦めたいと思っています。
f:id:nana_yu:20180629171145j:plain

f:id:nana_yu:20180427091332p:plain
nao_yPyQに「PythonユーザのためのJupyter[実践]入門」本とのコラボ問題もあります。今回コラボレーションコード無料で公開しており、コードを入力することで体験することができます。

blog.pyq.jp

バックナンバー

  • 導入・索引…片柳さんのご紹介とインデックスページです。
  • その1…農業研究分野でのPythonデータ処理について

次回の内容

その3では、女性によるPythonコミュニティ「PyLadies Tokyo」についてお伺いしています。

blog.pyq.jp

Copyright ©2017- BeProud Inc. All rights reserved.