Google Colaboratoryでpython入門

python入門 with Google Colab

python入門的な記事や書籍は今や巷にあふれかえっていますが、Google Colabというのが
非常に便利なのでそちらのツールの紹介も合わせて記事にしました。
ちなみに無料です。
(Google Colaboratory略して→Google Colabです。)

Contents

  1. pythonとは
  2. Google Colab(jupyter notebook)について
  3. 具体例
  4. まとめ

1 pythonとは

現在広く使われているプログラミング言語です。
これまでC言語を扱った記事も書きましたが、pyrhonはC言語とは大きく違っています。

C言語では実行するためにコンパイルをしました。ソースコードを一度、最初から最後までまるごと読んで、
機械が理解できる言葉に「翻訳」するものでした。そしてまとめて翻訳してからまるごと実行していました。

pythonでは一行ずつ機械が理解できる形に変換して実行、変換して実行、変換して実行…を繰り返します。
C言語で翻訳してくれるものをコンパイラと呼びましたが、
pythonで「変換して実行」をしてくれるものをインタプリタと言います。
(インタプリタは英語で書くとinterpreterで、「通訳」などの意味があり、interpret自体は「解釈する」という意味があります。)

またC言語のようにコンパイラでまとめて翻訳して実行する言語をコンパイラ言語
それに対して一行ずつ読みながら実行する言語をインタプリタ言語と言います。
Fig. 1にここまでの内容をまとめたイメージを示します。

Fig. 1 コンパイラ言語とインタプリタ言語の動作の違い

またpythonはC言語に比べ、より人にわかりやすい、便利で融通が利く(?)点があります。
逆にCはpythonに比べて、より機械にわかりやすいプログラミング言語です。
プログラムにおける「高級(’高水準)」と「低級(低水準)」というのは、人がわかりやすいかどうかを指す言葉です。

高級な言語では人にとってわかりやすいですが、自由度が限られてしまうことや、
処理がブラックボックス化してしまう、そしてなにより処理速度が遅くなってしまうというデメリットがあります。
一方低級な言語は、人は作るのが多少手間ですが、自由度が高く、処理を最適化させることができ、
また処理速度が速いので実際にモノが動くような場面だとCやより低級な言語が用いられます。
ちなみに今回使うpythonは比較的に高級だと言われています。

2 Google Colaboratory

python入門というとpythonの実行環境を整えてターミナルやコマンドプロンプト上で、
pythonと打って起動してprint(“hello, world”)とかやることが多い(C言語入門の1回目みたいな感じ)ですが、
今回は面倒くさいのでそれらをすっ飛ばします

Google Colabというツールに至るまで(おまけ)
pythonとはのところで話したように、pythonはコードの入力するとすぐ実行結果が表示されます。
コンピュータへの入力とコンピュータからの出力をくりかえしおこなうので、「対話的」とも表現されますが、
そのやりとりをよりわかりやすく、便利にしてくれるものがIPythonというものです。
IPythonはその公式ページにある通り、わかりやすくしているだけなので新しいpythonの知識は必要なしに、
便利に使える環境を提供してくれます。(補完機能とか)
そしてそれをよりグラフィカルに見やすくしたものがIPython notebookです。ブラウザで動きます。
コードの合間合間にテキストをマークダウン形式(シンプルに装飾ができたり数式が表示できる形)で挿入できるのでコードの
説明かなんかを入れることができたり、グラフを同じ画面内に出力してくれたりします。
さらに多言語に拡張したものがJupyter notebookになります。サーバを立てて同じ開発環境で複数人が取り組むこと
が容易にできます。
そしてこのJupyter notebookの機能をクラウド上で提供してくれているのがGoogle Colaboratoryです。

Google ColabではGoogleアカウントが必要なので、無い方は取得しておきましょう。
Googleアカウントで紐づけされているのでGoogleドライブ内のファイルを使ったり、
notebookをそのままGoogleドライブ内で管理できるのでとっても便利です。

GoogleにログインしてGoogle Colabにアクセスします。
そうすると非常に謙虚な説明があるWelcomeページが表示されます(Fig. 2)。

Fig. 2 Google Colabウェルカムページ

左上の「ファイル」→「python3の新しいノートブック」をクリックしましょう。
では恒例、helloworldを試してみましょう。以下にソースコード(1行)とその実行結果(Fig. 3)を示します。

コードやテキストはセルと呼ばれる四角の枠に記述します。セルを追加したい場合は「+ コード」「+ ファイル」のボタン
をクリックします。またセルの並び替えもセル追加ボタンの横の「↑セル」「↓セル」でできます。

コードのセルは「Ctrl+Enter」で実行できます。「Shift+Enter」では実行して次のセルが選択されます。

print("hello, world!")
Fig. 3 ハローワールド実行

3 具体例

基本的な数値計算

以下のコード例を試しにひとつずつセルに入力して、全部実行してみましょう。
Shift+Enterで実行して次のセルに移ります。Ctrl+Enterで実行してそのセルのとどまります。

1セル目

a = 11
b = 2

2セル目

sum_ab = a + b
sub_ab = a - b
multi_ab = a * b
div_ab = a / b
rem_ab = a % b

3セル目

print("和: " + str(sum_ab) +"\n"
     +"差: " + str(sub_ab) +"\n"
     +"積: " + str(multi_ab) +"\n"
     +"商: " + str(div_ab) +"\n"
     +"剰余: "+ str(rem_ab))

数値計算の例:calc_example.ipynb
上にあるリンクにとぶとクラウド上の私のソースが閲覧(Fig. 4のような形)できます。
このような共有するためのリンクの生成が簡単にできるほか、Githubでの管理も可能です。

Fig. 4 数値計算の具体例(calc_example.ipynb)の画面

セルごとに実行できるので「パラメータの更新だけする」だとか「グラフの見方をかえる」ようなことを、
バラバラにできるのでとても効率的です。(コンパイラ言語だとこうもいかず、例えばデータを生成するフェーズと
グラフを整形するフェーズを別におこなうためにはある程度工夫をしなければできません。)

このような仕様は機械学習、ビッグデータの解析、そして信号処理など、「なにか試しに手を加えてその結果を見る」を
頻繁に繰り返すような分野ではとくに重宝されています。

4 まとめ

  • pythonは現在かなり広く使われているインタプリタ言語のひとつ
  • Google Colabはクラウド上でpythonを対話的に視覚的に便利に使える
  • 共有やGoogle内外のサービスとの連携ができる

というのが今回のまとめです。

本文内では特に触れませんでしたが、クラウド上にある計算資源を使っているので
ブラウザさえ動けばポンコツなPCでもタブレットでもスマートフォンでも、
機械学習のような処理の重いタスクを扱うことができます

pythonもcolabも便利なのでいろいろいじってみてください。

追記(2019/04/06)
こちらのGithubページにてプログラムを公開しています。

「Google Colaboratoryでpython入門」への1件のフィードバック

  1. ピンバック: pythonで音プログラミング | 有閑是宝

コメントを残す

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