PyQオフィシャルブログ

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

6月13日(水)午前6時〜7時にPyQのメンテナンスを行います

PyQ清原です。 PyQのメンテナンスについてお知らせします。

  • 日時: 6月13日水曜日、午前6時〜7時
  • 内容: 安定化、高速化の対応
  • 範囲: ログイン中の画面が停止します

ログイン中の機能がご利用いただけなくなります。 クエストの学習もこの期間できなくなります。

より安定した高速なシステム運用をするためにデータベースの変更を行います。 利用されている方の少ない時間帯でのメンテナンスとしておりますが、朝6時からの1時間を利用してプログラミング、Pythonの学習をされている方には申し訳ありません。

より良いPyQのサービス提供のためご協力ください。 PyQブログの良い記事もありますので、時間が空いてしまった方はぜひ読んでください。

blog.pyq.jp

blog.pyq.jp

blog.pyq.jp

PyCon APAC 2018 in シンガポールに行ってきました!

こんにちは。PyQチームのnao_yです。

シンガポールで開催されたPyCon APAC 2018に行ってきました!

さまざまな国のPython使いが集まるPyCon APACの雰囲気や、機械学習+Webという興味深い内容の発表についてお伝えしたいと思います!

PyCon APACとは?

2010年にシンガポールから始まった、アジア太平洋地域規模で開催されるPythonのカンファレンス(PyCon)です。

直近では台湾(2015年)、韓国(2016年)、マレーシア(2017年)といった国で開催されました。日本では2013年に開催されています。

PyCon APAC 2018

5月31日から6月2日に掛けての3日間に渡って開催されました。

会場はシンガポール国立大学(NUS)。世界大学ランクで3年連続でアジア首位に輝いている大学だそうです。

f:id:nao_y_py:20180607142926j:plain

マーライオンが描かれたロゴがまさにシンガポールという感じです!

f:id:nao_y_py:20180607142604j:plain

1日目がワークショップ、2,3日目がカンファレンスというスケジュールです。カンファレンスはデータサイエンスWeb開発その他とテーマごとに分かれた3トラック構成で行われました。どのトラックにも興味深いトークがあってどれを聞くか悩みまくっていました。

3日目には学生向けプログラミングワークショップが開催されていたようで、学生がちらほら見受けられました。プログラミング面接で使われるPythonの文法についての発表(Elements of Programming Interviews in Python)を真剣に聞いている姿が特に印象的でした。

すべての発表が英語で行われるので、英語慣れしていない私は頭をフル回転させながら聞いていました。あまりに頭を使いすぎて頭痛がするくらいでした。英語力を鍛えないといけないようです。

また、開催中には朝食、昼食、おやつがビュッフェスタイルで提供され、会場にいる間お腹が空くことはないくらい食事にも気合が入ったイベントでした。

APACの名前に相応しく、さまざまな国のPython使い(Pythonista)が集結します。最終日にはスタッフや発表者も交えて懇親会を行いました。台湾、韓国、インド、フィリピン、カナダとさまざまな国から来たPythonistaと交流しました(頑張って英語で交流を試みていました)。

f:id:nao_y_py:20180607142629j:plain

PyCon APAC 2018 ツアー

海外カンファレンス初参加なので、PyCon JPが企画するAPACツアーに加わりました。

PyCon JP Blog: PyCon APAC 2018 in シンガポール のツアー参加者募集

5月31日にシンガポール入りして、初日は観光、2, 3日目はPyCon APAC、4日目にまた観光、そして6月4日に帰国というスケジュールでした。PyConも観光も満喫できました。

f:id:nao_y_py:20180607142901j:plain

Build a Data-Driven Web App That Everyone Can Use

概要:

You're a data scientist with a machine learning model that you want to show everyone. Do you give your users your Python scripts and tell them to run "python mycoolmodel.py"? Is there a better alternative? How about a web app? The speaker will show you how Flask can be the best fit pun intended for this case.

概要(意訳):

自分の作った機械学習モデルをみんなに使ってもらいたいのに、mycoolmodel.pyなどと名付けたファイルをpythonコマンドで実行するよう伝えていませんか?他にもっと良い方法があるはずです。Webアプリはどうでしょうか?この発表ではFlaskを使ったベストな方法を紹介します。

特に興味深かった発表がBuild a Data-Driven Web App That Everyone Can Useです。

機械学習というとJupyter Notebookでコードを書いたり、結果をグラフ化する印象がありました。 Jupyter Notebookは機械学習モデルの作成には適していますが、チームメンバーや多くのユーザーにその成果を使ってもらうときにファイルを渡して実行してもらうわけにもいきません。

そんなときにWebアプリとして使うことができたら便利ですし、Webサービスに組み込むこともできそうです。Flaskは軽量WebフレームワークなのでシンプルにWebアプリを作れるのが特徴です。機械学習モデルをアプリ化するにはとてもよい選択肢と思いました。

発表の動画が後日公開される予定ですので、追って紹介します。

機械学習とFlaskはどちらもPyQで学べるので、応用例としてFlaskで作成した機械学習Webアプリをいずれ紹介したいと思います。

シンガポールってどんな感じ?

シンガポールといえばマーライオンとマリーナベイサンズ。天候に恵まれてとてもいい画が撮れました。

f:id:nao_y_py:20180607143817j:plain

東南アジアに位置しているので雨がちな気候ですが、ツアー4日目は綺麗に晴れて観光日和でした。天気がいいだけあって赤道直下の暑さをとても感じましたが、ホーカーズと呼ばれる露店街で休憩しつつ晴天のシンガポールを散策しました。

f:id:nao_y_py:20180607144411j:plain Maxwell Food Centre

f:id:nao_y_py:20180607144515j:plain Lau Pa Sat Festival Market

Maxwell Food Centreではシンガポール名物の海南鶏飯を食べました。柔らかい鶏肉と鶏の茹で汁が染み渡ったご飯の組み合わせが最高でした。 f:id:nao_y_py:20180607144836j:plain

夕方にはアラブ街を散策してトルコ料理をいただきました。 f:id:nao_y_py:20180607145344j:plain

f:id:nao_y_py:20180607145408j:plain

地元の人々が集まる露店街、近未来的な高層ビル群、異国情緒あふれるアラブ街とシンガポールのさまざまな姿を楽しむことができた一日でした。

シンガポール豆知識

シンガポールの公用語は複数ありますが、英語もその一つです。歴史的な経緯から英国式の単語が使われています。例えば、中心部を指すセンターはcentre、色はcolourという感じです。初めて聞いたのが建物のフロアを表すstorieという言葉。綴りだけじゃなくて単語そのものも普段耳にする米国式と異なるんですね。

まとめ

初めての海外でカンファレンスなので発表が全く理解できないのではないかと不安でした。しかし英語とはいえPythonの話です。多少聴き取れなくてもスライドを読んだり、出てきたライブラリをその場で検索したりすることでなんとなく内容が伝わってきます。特に興味深かった"Build a Data-Driven Web App That Everyone Can Use"は話もスライドも理解しやすい作りですので、動画が公開されたらぜひ見てみてください。PyQでの学びを活かすアイデアが得られることでしょう。

また、シンガポールを訪れるのも初めてだったのですべてが新鮮でした。技術の話題だけでなく、その国の景色や食文化を楽しめるのも海外カンファレンスの醍醐味なのだと実感しました。

日本から海外のPyConに参加する人はあまり多くないようです。PyQで学んだあとは、海外のPyConに目を向けるのはどうでしょうか?刺激的な発表や綺麗な景色、美味しいものを味わいにいきましょう!

海外カンファレンスに興味があるけど一人では行きづらい、海外にあまり行ったことがないので不安という方は、PyCon JPが企画するツアーに参加するのがおすすめです。Pythonista仲間と行く旅は心強いですし、現地や他の国のPythonistaと交流するチャンスも得られます。

PyCon APACツアーやPyCon JPの情報は公式Twitterアカウント@PyConJで公開されます。ぜひチェックしてみてください。

PyQブログの更新は、SNSで告知しています。

リリース情報・PythonやIT全般のお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

【コース追加】「統計分析コース」リリースのお知らせ

斎藤です。「統計分析コース」をリリースしました。

f:id:nana_yu:20180524163116p:plain

統計分析の知識は、最近、特に重要になっていますが、なかなか体系的に学ぶ機会は少ないと思います。

PyQの統計分析コースでは、統計学の記述統計学の基礎と推計統計学を一通り学べるようにカリキュラムが用意されています。この機会に、是非、身につけてみましょう。

pyq.jp

コースを学ぶと何ができるようになる?

このコースを学ぶと以下のことができるようになります。

  • 統計分析の基本であるscipy.statsを使えるようになります。
  • 数学の知識がなくても仮説検定が分かるようになります。

学習画面の動画紹介

PyQのデータ処理分野のクエストはJupyter Notebookと呼ばれる、 Pythonのデータ分析分野で広く使われているツールをブラウザ上で動かしながら学習します。 どのような画面で学習を進めていくのか、動画で解説します。


PyQ(パイキュー)統計解析コース

コースの内容

以下の12パートあります。新規パートは、[New]がついた4つです。それぞれ、紹介します。

  1. Jupyter Notebookの使い方
  2. pandas体験
  3. pandasのデータ構造
  4. データ処理
  5. NumPyデータ作成
  6. NumPyの基本
  7. NumPyの関数
  8. 役に立つNumPy
  9. 確率・統計の基礎知識 [New]
  10. サンプリング [New]
  11. 色々な推定 [New]
  12. 仮説検定 [New]

f:id:tsutomu3:20180524142029p:plain

1. 確率・統計の基礎知識

4つのクエストで、確率・統計の基礎を学びます。

1-1 シミュレーションと統計量

シミュレーションを通して、確率変数とは何か、基本統計量を学びます。

1-2 大数の法則とばらつき

対数の法則を通してばらつきを抑える方法を学びます。 ヒストグラムの書き方や、確率変数の法則についても学びます。

1-3 ベイズの定理

ベイズの定理を学び、モンティ・ホール問題などで確認します。

1-4 統計の基礎の確認

確率や統計の演習問題をします。

2. サンプリング

3つのクエストで、サンプリングについて学びます。

2-1 母集団と標本

母集団と標本を学び、色々な抽出方法を学習します。

2-2 標本平均の標準誤差

標本サイズや標準誤差を学びます。

2-3 サンプリングの確認

サンプリングの演習問題をします。

3. 色々な推定

3つのクエストで、色々な推定について学びます。

3-1 点推定

推測統計学と点推定を学びます。

3-2 区間推定

区間推定、信頼区間、t分布などについて学びます。

3-3 推定のおさらい

推定の演習問題をします。

4. 仮説検定

6つのクエストで、仮説検定について学びます、 仮説検定は、独特な手法でわかりにくい部分もありますが、19問の問題で徹底的に学習します。

4-1 仮説検定とは

帰無仮説、対立仮説、有意水準、p値などの用語と仮説検定の流れについて学びます。

4-2 データに基づく仮説検定

仮説検定の種類や1標本の仮説検定について学びます。

4-3 両側検定と片側検定

両側検定と片側検定を学びます。

4-4 2標本の検定

2つの標本の検定について、血圧降下の例題で学びます。

4-5 多重仮説検定

多重仮説検定を学びます。

4-6 色々な仮説検定

色々な仮説検定の演習問題をします。


いかがでしたでしょうか。確率的な振る舞いに対しての判断方法を学ぶことで、統計分析だけでなく機械学習を使った分析にも役立つことと思います。

さらに、近日中に、回帰分析問題の追加を予定していますので、よろしくお願いします。

PyQ 統計分析コース詳細

PyQブログの更新は、SNSで告知しています。

リリース情報・PythonやIT全般のお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

プログラムの設計について。「関数ってどうして必要なんでしょうか?」に実際の業務でのポイントも踏まえて解説します

f:id:nana_yu:20180511153545p:plain

f:id:nana_yu:20180316121637j:plain
こんにちは。PyQサポートの大村です。 今日のPythonお悩み解決は、「何度も行う処理を関数にまとめる」ことの意味やメリットを説明します。

この記事の概要

対象者

  • 実務的なPythonコードを書きたい人
  • プログラムの良い設計とはどのようなものなのかを知りたい人
  • PyQで「設計」のクエストをしたけれどピンと来なかった人

記事を読むのにかかる時間

  • 約8分

質問内容

PyQには「設計」というコードの組み立て方を学ぶ課題があります。

blog.pyq.jp

こちらの問題に関するご質問をいただきました。

「何度も行う処理を関数にまとめる」というクエストがあり、生コードを 関数にまとめるというのがありました。まとめた関数が配置されたコードだと、毎回その関数 を読み解く必要があり、かなり煩わしさを感じ、一つの関数にまとめて書くほうがいいのではないかと思いました。 関数がたくさんあっても徐々に読み解けるようになって、煩わしさは解消されるものなのでしょうか。

回答

問題中にも解説がありますが、単純に「同じ処理だから」という理由だけで共通の関数にするのはオススメしません。 1つの機能に対する処理を関数にまとめます。テストもこの機能単位(関数やクラス)で実装します。

また、関数は内部の実装を確認しなくても、何をするものかわかっていれば使えます。 「Xというデータを渡したらYという結果を返す(もしくは何か処理をする)」と認識しておけばいいです。

そのために、なるべく何をしている関数かわかる関数名をつけます。

例えば、クエスト「33-2: 関数にするポイントと設計」 1問目で定義している関数ですと read_csvという関数名なので「csvのデータを読込みその結果を返してくれる関数」と予測がつきます。 2問目のwrite_csvは、「渡したデータをcsvに書き込んでくれる関数」と予測がつきます

そうは言っても、PyQの問題のような短いプログラムですと関数やクラスの良さがわかりづらいです。 欲しい処理を上から順に書いて置いたほうが読みやすいと思います。

実際の業務

実際の業務では沢山の「他人が書いたプログラム」と「自分が過去に書いたプログラム」を組み合わせてアプリケーションを作っていきます。

毎回、すべてのプログラムを読むのは時間的に無理です。また、すべての機能を把握して1人で実装するのも時間がかかります。

(すでに存在するライブラリなどを再作成することを、すでに世の中に存在する車輪を再度作ることに例えて「車輪の再発明」などと揶揄します)

機能を関数にまとめて、他の人でも簡単に利用できる状態にしておくことが重要です。

実際、自分が書いたプログラムでもしばらく経ってから読むとまったく覚えのないコードになっています。 プログラミングはなるべく分かりやすい機能ごとに分割して、それごとにテストをしておくと、仕様追加や仕様変更が発生しても該当部分を修正し、試験するだけでよくなります。

もし、全ての処理を1つの関数内に書き、そこに修正を加えると前回の作成時と同じ分量の試験を行う必要が出てきます。

このようにプログラムは、機能ごとに処理を分割して記述していくという思考で設計されます。

これを踏まえて、クエスト 「関数にするポイントと設計」 の問題文と解説を読んでいただけませんでしょうか。

PyQブログの更新は、SNSで告知しています。

リリース情報・PythonやIT全般のお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

「PythonユーザのためのJupyter[実践]入門」とのコラボレーション問題をリリースしました

こんにちは。PyQチームのnao_yです。

技術評論社より発売されている「PythonユーザのためのJupyter[実践]入門」通称「Jupyter本」とのコラボレーション問題がリリースされました! jupyter_book_01.png

「PythonユーザのためのJupyter[実践]入門」の紹介

この書籍は、データ解析のための環境構築、データ加工・可視化の様々な手法と役に立つtips、クラウド環境の利用までを詳細に解説しています。Jupyter Notebookを使ったデータ分析・可視化の入門に最適な一冊です!

今回のコラボレーション問題では、以下の3つに焦点を当てています。

  • pandasでExcelファイルを読み込む

  • 散布図でデータを可視化する

  • ヒストグラムでデータを可視化する

書籍と同じく実際のデータを使った問題になっていますので、まさに実践です。

f:id:nao_y_py:20180528114414p:plain

コラボレーション記念として、コラボ問題とJupyter/Numpyコースを体験できます。

書籍は読んでいるけどPyQは利用していないという書籍の読者の方向けにコラボレーション問題コースを用意しました!このコースはコラボレーション問題の他に、PyQの使い方、JupyterやNumPyの初級問題も含んでいますのでPyQで学習する雰囲気を掴むことができます。

f:id:nao_y_py:20180528114253p:plain

コラボレーション問題の体験方法

以下のキャンペーンコードを入力することでコラボレーション問題コースで3日間のPyQ無料体験ができます。 https://pyq.jp/ にアクセスして「学習を始める」ボタンをクリックし、画面の案内に従ってキャンペーンコードを入力してください。なお、無料体験にはクレジットカードの登録が必要となります。

キャンペーンコードの入力方の詳細は以下のドキュメントをご覧ください。 docs.pyq.jp

キャンペーンコード :

キャンペーンコード:jupyterbook

docs.pyq.jp

PyQユーザーの方も書籍の読者の方もぜひコラボレーション問題にチャレンジしてみてください!

PyQブログの更新は、SNSで告知しています。

リリース情報・PythonやIT全般のお役立ち情報なども配信しています。 Python・プログラミング学習の情報に興味のある方は フォローしていただくと、最新情報をいち早く知ることができます。

PyQ公式Twitter

twitter.com

PyQ公式Facebook

PyQ

Pythonオンライン学習サービスPyQはこちら

pyq.jp

Copyright ©2017 BeProud Inc. All rights reserved.