Google Colaboratory（初利用からファイルの読込みまで）

# 概要
 
　Googleのアカウントを持っているものの Google Colaboratory を利用したことはない、という方に向けたメモです。Google Colab.では、作成したノートブックファイル（ipynb形式）が Google Drive のなかに保存されます。そのあたりの関係についても書いています。


## Google Colaboratory とは

https://colab.research.google.com/notebooks/welcome.ipynb から引用
 
>Colaboratory は、完全にクラウドで実行される Jupyter ノートブック環境です。設定不要で、無料でご利用になれます。


# 利用準備
## Google Colab.にアクセス

[Google Colaboratory](https://colab.research.google.com/?hl=ja) にアクセスします。未ログインの場合は、右上の「ログイン」をクリックします。

![01-ページにアクセス.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/10daed3b-02f8-bca0-660a-15214a63076b.png)

## Googleにログイン

Googleアカウントに登録しているメールアドレスを入力して、「次へ」をクリックします。

![02-ログイン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/da10d447-722a-a52b-3de5-fb4554e38bec.png)

アカウントを確認して、「Continue」をクリックします。

![02-本人確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/2edf36f6-c624-daea-bf8a-c3d1bedc6904.png)

# ノートブックの作成と実行、保存場所の確認
## ノートブックの新規作成

ログイン状態になったら、メニューから「ファイル」の「**Python3の新しいノートブック**」を選択します。初回利用時は、ここで少し時間がかかります（1～2分程度）。

![04-新規作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/758f228f-b488-7c6e-a80a-639b5da4b470.png)

画面が切り替わったら、画面内のボックス（これを**セル**と言います）をダブルクリックして、キーボードから `10+20` という計算式（いちおう、これでもプログラム）を打ち込みます。

その後、そのセル内で、[Ctrl]+[Enter] を入力するとコードが実行されます。

![06-10足す20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/15d2b98e-0b51-9e8b-7e87-06e621dfe708.png)

次のように `30` と結果がでればOKです。

![06-10足す結果.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/36d515c7-da44-a543-fe99-e86947d71da6.png)

## ノートブックのファイル名の変更

ファイルを新規作成すると、自動的に「Untitled0.ipynb」といった名前のファイルが作成され、Google Drive の所定の場所に保存されます。画面上部のファイル名をクリックすると名前を変更できます。ここではファイル名を「test001.ipynb」に変更します。

![08-名前変更.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/f53b6197-851f-181a-ca2b-fb33c0e7ebbb.png)

## ノートブックファイルの保存先を確認

ブラウザの別ウィンドウで、Googleドライブにアクセスします。マイドライブの直下に「**Colab Notebooks**」というフォルダが作成され、そのなかに先ほど作成した「test001.ipynb」が存在していることを確認できます。

![09-ドライブにフォルダ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/03c14a76-9b48-68ac-e87f-b6d7f13fb6a0.png)

# CSVファイルの読込み

Google Colaboratory で動かす Pythonプログラム のなかで、**テキストファイルやCSVファイルなどを読込みたい場合**があります。このようなときは、読み込ませたいファイルを、あらかじめ Google Drive にアップしておき、そこから読み込みます（この以外にも、`google.colab.files.upload()` で一時利用領域にファイルをアップして使う方法もあります）。


## Google Driveのマウント

Google Drive にアップしたファイルをノートブックのなかから読み込むためには、Google Drive をマウントする必要があります。セルに次のコードをコピペして、[Ctrl]+[Enter] でセルを実行します。

```python:
from google.colab import drive
drive.mount('/content/drive')
```

 
![21-マウント1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/26154cf3-b00e-b621-7e65-5d470c465438.png)

Google Colab. から Google Drive にアクセスする許可を与える手続きをします。まずは、`Go to this URL in ...` につづいて表示されているリンクをクリックします。

アカウントを選択します。

![21-マウント2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/5c296737-8605-8578-f79a-0ed7d8ee26e6.png)

内容をよく確認して、「許可」をクリックします。

![21-マウント3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/bddbd129-ea34-e034-d053-a5f4cf1c18dd.png)

次のように認証コードが表示されるので、これをコピーして、先ほどの実行セルのテキストボックスに入力します。

![22-マウント4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/7447ee12-9f25-995e-8745-e5fa2c3fcdb4.png)

`Mounted at /content/drive` のような表示がでれば成功です。

![2019-10-01_11h49_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/e0db1c05-0de1-6a27-159e-e96f46edd8b6.png)


## Google Drive にCSVファイルをアップ

次のように、Google Drive の Colab Notebooks フォルダのなかに適当なCSVファイルをアップします。

![2019-10-01_11h08_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/34a2b93b-cebb-b319-3428-5ba7a200ff16.png)

```:data01.csv
aaa,bbb,ccc
10,20,30
40,50,60
```

いま、Colab Notebooks フォルダの直下に data01.csv というファイルをアップしました。このファイルは、Google Colab. からは `drive/My Drive/Colab Notebooks/data01.csv` というパスでアクセスできるようになります。

## ファイルの読込み

CSVファイルを読み込んできます。ここでは pandas を利用します。

```python:
import pandas as pd
df = pd.read_csv('drive/My Drive/Colab Notebooks/data01.csv')
print(df)
```

次のような実行結果となれば、ひとまず成功です。

![2019-10-01_11h16_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152805/9f5acbec-6bd1-b78c-c122-caf1c03edd0a.png)

# 環境の確認

Pythonのバージョンや利用可能なパッケージは、次のように確認できます。

```python:
import sys
print(sys.version)
!pip list
```

```:実行結果
3.6.8 (default, Jan 14 2019, 11:02:34) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]]
Package                  Version              
------------------------ ---------------------
absl-py                  0.8.0                
alabaster                0.7.12               
albumentations           0.1.12               
altair                   3.2.0                
astor                    0.8.0                
astropy                  3.0.5                
atari-py                 0.1.15               
atomicwrites             1.3.0                
（略）
```

# memo

## 基本操作

- [ctrl]+[Enter]：セルの実行
- [shift]+[Enter]：セルの実行（次のセルに移動）
- [ctrl]+[M],[B]：下にセルを挿入
- [ctrl]+[M],[A]：上にセルを挿入
- [ctrl]+[M],[N]：次のセルに移動
- [ctrl]+[M],[P]：前のセルに移動

## matplotlibの日本語対応とSVG形式のグラフを出力

```python:
!pip install japanize-matplotlib
```

```python:
%config InlineBackend.figure_format = 'svg'

import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib 

f = lambda x :  x**2 + x - 6 # 関数
x = np.linspace(-5, 5, 100)
y = f(x)

plt.figure(figsize=(5,5))
plt.plot(x, y, color='0.0')
plt.xlabel('X軸')
plt.xlabel('Y軸')

plt.savefig('test.svg',format = 'svg'); # SVG形式ファイルも出力
```