eljefeblog 

Any sufficiently advanced technology is indistinguishable from magic

programming-middle

【脱初心者:中級者向け1】Pythonプログラミング入門【Jupyter Notebook編】

Pythonプログラミング入門【Jupyter Notebook編】




(Python初心者で初めから基礎をしっかり学びたい方はこちら↓↓)


このシリーズはプログラミング初心者の方が、
中級者へのステップアップするための情報をまとめたものです。


シリーズを最後まで学習することで
エンジニアとして太い知識の主軸を積み上げる事ができます。



具体的に以下のような疑問に答えていきます。

悩むペン銀

これまでPythonのコードはターミナルの対話環境で実行してきたんだけど、もっとプログラムを描きやすい方法とかアプリケーションとか無いのかな?


自分か前に書いたコードの記録を残して、次回始める時もそのコードから描き始めるみたいなことして見たい。グラフとか、画像とかを扱うときに最適な方法と無いのかな?




本記事を読み終わった後、
得ることができる主な知識・内容は以下4点です。


本記事の内容

  • Jupyter Notebookとは何か
  • Jupyter Notebookの歴史
  • Jupyter Notebookを利用する利点
  • Jupyter Notebookを利用する上でのTips



  • この記事を書いている僕は国立大学にてCSの学位を保有しており
    博士課程に在席しながら、エンジニアとしての仕事でデータ分析を行なっています。


    Jupyter Notebookをマスターする事で、プログラミングを学ぶ上でも
    仕事をする上でも効率的に物事を進めることができます。


    それでは見ていきましょう!









    疑問について、先に結論を行ってしまうと、
    Pythonでデータ分析を行う際に重宝されているツール
    『Jupyter Notebook』を使いましょう。です。


    Jupyter Notebookとは何なのか?
    なぜJupyter Notebookを使うメリットがあるのか?



    これらの事を順を追って説明していきます。





    Jupyter Notebookとは何か?

    引用: https://jupyter.org/



    Jupyter Notebookは自分が書いたコードとそれに付随するコメント等を保存することができ、コードの実行結果や出力したグラフなども記録として残しておくことができるアプリケーションです。



    初めはPythonやRの言語を対象として開発されていましたが、
    現在では他の様々な言語でも利用できる様に開発されています。



    歴史的な事を少し話すと、ターミナルでの対話型コンソールを改良し、科学者にとって使いやすいことを目的として開発が進められ



    現在、科学計算とデータ分析において理想的な環境を提供してるこのアプリケーションは、研究者やエンジニア、ビジネスマン、コンピュータサイエンスの学生にとって無くてはならない存在になりました。



    コメントを残すことができると言いましたが、LaTeXでも書くことができ、かつ数式などを記述できるようになっています。(これは次の章で詳しく述べます)



    まとめるとJupyter Notebookは自分が書いたコードについて
    まさにレポートを作成するが如く、記録として残すことを可能にするアプリケーションです。





    Jupyter Notebookの特徴



    前節で述べた様に、書いたコードに関して美しいドキュメントを残すことができる点がJupyter Notebookを使うべき主な理由の1つですが、本節ではその特徴をより分割して詳しく説明していきます。



    全ての情報を1つのノートに


    既に少し触れましたが、Jupyter Notebookはコード・テキスト・画像・動画・アニメーション・数式・グラフ・インタラクティブグラフ・等々様々な情報を一つのノートブックとして記録する事が可能です。



    コードも実行できるし




    テーブルを作成したり



    グラフを作成する事も簡単です




    ライブラリを駆使すれば3Dプロットもできてしまいます。
    (ちなみにこのグラフの作成には外部ライブラリのplotlyをインポートして利用しています。美しいグラフを少ないコードで実現する事ができるためオススメです。)



    この様に簡単に書いたコードの実行結果やグラフ等を簡単に可視化して
    記録として残す事ができる点がもっともJupyter Notebookの得意とするところです。





    Markdown(マークダウン)で文章を残せる



    Markdownとは『文章を記述するためのマークアップ言語』のことです。
    webページ等を作成するためにはHTMLを利用しますが、このHTMLに変換する事が可能な言語であり、洗練された文章を書く事ができます。


    現在Jupyter Notebookの入力にはCode・Markdown・Raw NBConvert・Headingの4つのタイプが設けられており、
    Pythonのコードを実行する際にはデフォルトで、Codeタイプに設定されています。
    (初心者の方はCodeタイプ・Markdownタイプの利用をマスターできれば十分です)



    マークダウンをノートブック内に記述したい場合は、下の画像にある様に
    ツールバーの中からMarkdownを選択する事で、設定を切り替える事ができ、
    選択しているセルのみをCodeタイプからMarkdownタイプに変更します。







    あとは普通に文章を入力すれば、
    以下の様に記録として残す事ができます。





    数式もお手の物


    Jupyter Notebookでは文章だけでなく、数式も記述する事が可能です。




    簡単に共有できる



    これまで紹介してきた様に結果として
    以下の様にまとめて一つのノートブックとして扱える様になります。




    Jupyter Notebookは様々な形式に変換して保存する事ができるため、
    他者と簡単にコード内容を共有する事が可能です。









    便利すぎて有名組織で導入されている



    現在Jupyter Notebookは様々な企業において使用されており、有名どころではGoogle MicrosoftをはじめNASAやIBMなどとどまることを知りません。

    引用: https://jupyter.org/



    教育の現場から実際の開発現場まで、
    幅広いプロフェッショナルに愛用されています。






    Jupyter Notebookを使ってみる


    Jupyter Notebookをインストールする



    Jupyter Notebookを利用するにはいくつか方法がありますが、
    今回はPythonのパッケージ管理ツールpipを利用してJupyter Notebookをインストールする方法を紹介します。


    まずは以下のコードを入力してpipを最新バージョンにupdateしましょう。

    pip install  - U pip setuptools



    pipを最新に更新できれば、あとはインストールするだけです。

    # Pythonのバージョンが2の場合
    pip install jupyter
    # Pythonのバージョンが3の場合
    pip3 install jupyter 



    Jupyter Notebookを使ってみる



    インストールが完了したら、既にJupyter Notebookを利用できる環境が整っています。早速使ってみましょう!


    ターミナルにおいて
    以下のコマンドでJupyter Notebookを起動します。

    jupyter notebook


    するとブラウザーにおいてアプリケーションが自動で起動し、
    以下の様に表示されることが確認できるはずです。(アドレスはhttp://localhost:8888)


    このページが表示されたら、右上のNewのボタンをおし、Python3の項目を選択すれば、以下の様に新しいノートブックの環境に入ることができます。


    この様にJupyter Notebookではセルの中にPythonのコードを入力し、
    セル単位でプログラムを実行していきます。






    実行方法



    ここでどの様に実行・編集・削除等を行うのかについてですが
    基本操作としては以下のショートカットを用いて、操作していきます。

  • セル内のプログラムを実行する: Shift + Enter
  • 新たなセルを下に追加する: escキーを押しながら bを2回押す
  • 選択しているセルを削除する: escキ-を押しながらキーボードのdを2回押す
  • Notebookを保存する: command + s


  • マークダウンの実行について


    今回は深く触れませんが、
    上記で紹介したマークダウンは以下の様に入力し、
    実行する事で記録を残しています。


    具体的にはHTMLとLatexの知識を少し学べば
    よりバラエティーに富んだ文章を書ける様になります。
    (下の文章ではリスト化して表示するためにHTMLを利用しています)


    実行前




    実行後



    数式の実行について



    数式は$を2つ数式の前後に配置して実行する事で表現する事ができます。


    より複雑な数式を表現する場合はLatexの形式で書く必要があるため
    ここについては少し追加の勉強が必要になりますが、


    恐らくそんなに身構えずとも書き方が分からない場合毎に
    調べる行為を繰り返していけば、自然と書ける様になるので大丈夫です。




    実行前



    実行後









    まとめ




    Jupyter Notebookは自分か書いたコードを他者に共有するときなど
    簡単に自分の意思を伝える事ができるツールです。


    自分の目的に合わせて様々な使い方ができる為、多くのデータサイエンティストに愛用されています。



    早い段階でJupyter Notebookをマスターし、
    思いのままに操作できる様にしておくと役に立ちますよ。



    今回は以上です。
    ではでは~~~



    人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します

    人気記事 CS学位取得者がガチでプログラミングスクールを調査してみた件【おすすめのスクール】







    このエントリーをはてなブックマークに追加
    data-ad-format="rectangle" data-ad-format="rectangle"

    返信する

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    某国立大学大学院(理系)に所属しています。 最近の趣味は人工知能関連の論文を読む事で 研究ではComputer Vision周りを中心に活動しており、 サイドワークとしてデータ分析の業務に関わっています。 本ブログはこれまで筆者が学んできた様々な知識の中から 有益だと思えた情報のみをまとめたものです。 内容は個人の見解であり、所属する機関と関係するものではありません。 Research: is related to Computer Vision Hobby: is to study Artificial Intelligence / Machine Learning.