学生による学生のためのデータサイエンス勉強会

【Google Colabolatory】プログラミング初心者が知るべきShellとGoogle Colaboratoryの話

プログラミング初学者がはじめにつまづくのは環境設定です。プログラムはコードを書けばそれで動くというものではありません。

プログラムは環境と呼ばれるプログラムを動かすための機能群に支えられてはじめて動作します。

しかし環境設定を適切に行うことは、はっきりいって初心者には無理です。

そこで今回は環境設定することなく、Pythonコードを動かすことのできるGoogle Colabolatoryを紹介します。

Google Colaboratoryってどんなサービス?

Google Colabolatoryは、その名のとおりGoogleが提供するサービスです。

Googleのサーバー上でJupyterが動いており、Chromeなどのウェブブラウザを介してJupyterにアクセスできます。

Jupyterって何?

Google Colabolatoryを理解するには、Jupyterを理解する必要があります。

プログラムは処理の指示書です。そのため、はじめから終わりまでエラーなく記述する必要があります。

もしエラーがあれば、そこでプログラムは止まってしまいます。

しかし実際にプログラムを書いてみると、機能ごとに検証したいと感じるはずです。つまりプログラムを部分的に実行したくなるわけです。

Jupyterの前身であるIPythonは、対話的(短いコードを入力するとその結果が返ってくる)にプログラムを実行することで部分的なプログラムの実行を可能にしました。

それがJupyterのセルに引き継がれています。

Jupyterはセル単位でプログラムを実行でき、機能的な検証を容易に行うことができるようになりました。

Google Colabolatoryを始めよう

Googleアカウントを作成

Google Colaboratoryを使用するにはGoogleのアカウントが必要です。

Google Driveへログイン

Googleアカウントを作成した時点で、Google Driveを使用することができます。

まずは自分のGoogle Driveへログインしてください。

Google Driveと連携

自身のGoogle Driveに入ると「マイドライブ」というページに行くはずです。

そのページからGoogle Colabolatoryを連携させましょう。

注意

この画像は私のマイドライブなので、初期のドライブとは異なります(カレンダーやTODOリストのアドオンを入れています)。

画面右にある「+」ボタンを押します。すると「アドオンを追加する」などのコメントが出ますが、そのままクリックします。

アドオンがたくさん並んだ画面が開かれます。検索欄で「Colaboratory」を検索するとGoogle Colaboratoryがヒットしますので、追加ボタン(+ボタン)を押せば完了です。

これでGoogle Colaboratoryで保存されたデータがGoogle Driveに保存されるようになりました。

Google Colaboratoryで検索

Google Colaboratoyのページに行くと、すでにJupyterノートブックが開かれています。

今見えているのはGoogleが作ってくれたノートブックです。

「ノートブックを新規作成」すれば、あなたのノートブックがあなたのGoogle Driveに保存されています(Google Driveを確認してみましょう)。

以上がGoogle Colaboratoryを使うまでの流れです。簡単ですね。

もうこれであなたはPythonの学習を始めることができます。

Google Colaboratoryを使ってみよう

「ファイル」→「ノートブックを新規作成」すると、まっさらな画面が表示されます。

画面中央に表示されている長方形が「セル」です。

ここにコードを書き、Shift + Enter で実行します。

コードの意味はわからなくてよいので、以下のコードをセルにコピペしてください。

import numpy as np
from matplotlib import pyplot as plt

ys = 200 + np.random.randn(100)
x = [x for x in range(len(ys))]

plt.plot(x, ys, '-')
plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)

plt.title("Sample Visualization")
plt.show()

上記コードをGoogle Colaboratoryにコピペして実行してください。

するとこのように表示されるはずです。

Google Colaboratoryを使わない場合を考える

import numpy as np
from matplotlib import pyplot as plt

ys = 200 + np.random.randn(100)
x = [x for x in range(len(ys))]

plt.plot(x, ys, '-')
plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)

plt.title("Sample Visualization")
plt.show()

これは先程のコードです。これを例にして、Google Colaboratoryを使わない場合にどのような環境設定が必要になるかを考えてみましょう。

プログラムを動かしている主体はなに?

.docファイルならMicrosoft Wordが実行します。.pptファイルならPowerpointですよね。では.pyはどのアプリが実行するのでしょう?

プログラムはシェル(Shell)を介して動作します。前述のWordも最終的にはシェルを介してCPUに命令が伝えられます。

MacではTerminalやiTerm2がシェルを扱うためのアプリです。つまり.pyファイルを実行するためにはTerminalが必要というわけです。

シェルの役割

シェルはプログラムと機械(マシン)の仲介役です。

例えば、小説家は頭の中の物語を文字にします。頭の中にあるうちは、本人以外見ることも聞くこともできません。文字になってはじめて読者は物語に触れることができます。

シェルはここでいう小説家に相当します。電子を制御することでプログラムを物理現象として具象化します。

シェルが.pyファイルを動かすために必要なもの

シェルさえあればPythonプログラムが動くわけではありません

.pyファイルをどう解釈するかの取扱説明書が必要です。.pyファイルは拡張子がpyになっているだけのテキストファイルに過ぎません。Python言語でimportと書かれたとき、機械の具体的な挙動を取り決めておく必要があります。

それがPythonソースコードです。.pyファイルを実行するにはPythonのソースコードが必要不可欠です。

豆知識

PythonのソースコードはC言語で書かれている。

実は、PythonのソースコードはC言語で書かれています。

ちょっとわかりにくいですよね。

つまりPython言語で書かれたコードは、内部的にはC言語であり、C言語によるコマンドがShellに伝えられているわけです。その後C言語は、Shellを介して機械語(機械に命令するための言語)に翻訳され、マシンを動かします。

Pythonソースコードはどこにある?

パソコンにPythonソースコードがあるとも限りません。その場合、Pythonソースコードをダウンロードする必要があります。

Pythonソースコードがパソコン内にあっても、Shellがソースコードの位置(パスといいます)をわかっていないとダメです。

また、Shellにソースコードの位置を教えてあげることを「PATHを通す」といいます

ダウンロード(インストール)したはずなのに.pyファイルを実行できないのは、パスが通っていないからです。

したがってGoogle Colaboratoryを使っていない場合、PythonソースコードのPATHをShellの設定ファイルに記述する工程が必要になります

PythonのPATHを通してもコードは動かない

ではここで例示したコードに戻ってみましょう。

import numpy as np

この文の意味は「NumPyってやつ持ってきて。使うときはnpって言うからさ」ということです。

シェルくん
シェルくん

え?! NumPyってどこにあんの?

そうです。NumPyもあなたのパソコンの中にあるとは限りません。というか入っていないでしょう。

そのため、Pythonソースコードと同じようにNumPyのソースコードをインストールして、インストール先をShellに教えてあげる必要があります。

どうですか? Google Colaboratoryを使わないだけでいきなり大変ですよね。

from matplotlib import pyplot as plt

当然このコードも同じです。「pyplot持ってきてよ! Matplotlibってやつに入ってるからさ! 俺がpltって言ったらpyplot渡してくれよ」という意味ですね。

シェルくん
シェルくん

pyplot?! そもそもMatplotlib自体どこにあんのよ

こうなるわけですね。

シェルはものすごく強力なツールですが、知識がなければ扱えません。

そのため私は、はじめてプログラミング学習をするときにはGoogle Colaboratoryをオススメしています。


以上です。

今回はなぜGoogle Colaboratoryをオススメするのかについて話しました。

プログラミング学習をはじめたばかりでは少し難しいかもしれませんが、この知識は非常に重要です。折に触れて読み返してください。

コメントを残す

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