Google Colaboratory

はじめての Google Colab

Google Colaboratory(グーグル・コラボラトリー、略称 Google Colab(コラブ))を使えば Web 上で Python が使えます。ただし、Google のアカウントが必要です。無料です(有料版もあります)。Python だけでなく R も使えます

古いブラウザでは使えなかったり Shift + Enter がうまくいかなかったりするようです。最新の Chrome か Safari か Firefox を使いましょう。

Google Colaboratory にアクセスしてください。上にオレンジ色の帯のあるポップアップが出れば、一番下の「ノートブックを新規作成」をクリックします。ポップアップが出なかったら、左上の「ファイル」メニューから「ノートブックを新規作成」を選びます。

コードセル(カーソルの点滅しているところ)に何か計算式を入れてみましょう。例えば

2+3

と打ち込んで、Shift + Enter します。答え(上の計算の場合は 5)が現れ、その下に新しいコードセルが出ます。

ブラウザによっては Shift + Enter がうまく効かないことがあるようです。その場合は ● ▷ のボタンをクリックすれば実行されます。ただ、新しいコードセルが出ませんので、「+ コード」ボタンを押してコードセルを追加します。

あとはPythonの初歩を見ながらいろいろ試してください。

ノートブックとして使う

Google Colaboratory は Jupyter Notebook(ジュピター・ノートブック)をベースに作られたもので、コード(プログラム)とテキスト(マークダウン形式の文書)を織り交ぜて、作業内容を記述できます。

セルのほんの少し上、または一番下のセルのすぐ下にマウスを乗せると、細い横線が現れ、中央に

————+ コード——+ テキスト————

という二つのボタンが現れます。これを使って、好きな位置に新しいセルを追加できます。

ここでは一番上のセルの上で + テキスト をクリックして、テキストセルを追加してみましょう。小さいワープロのような枠が現れます。この中に、コード中のコメントだけでは表せない説明を書き込みます。特に、一番上のテキストセルの最初の行は、このノートブックの題名を書きます。その際、次の例のような「マークダウン」(Markdown)と呼ばれる記法を使います:

# 日本の出生率の推移

以下では厚労省のデータをもとに日本の出生率の推移を考察する。

セルの右側にプレビューが現れます。頭に # を付けた行だけ題名用の大きなフォントで表示されます。このような記法がマークダウン記法です。同様に、## を付けた行(節見出し)は、題名よりもやや小さく本文より大きいフォントになります。

頭に # を付けなかった行は、普通の本文です。空の行を挟むと、そこで段落が区切られます。

TeX 形式の数式も使えます。本文中に アインシュタインは $E=mc^2$ と言った。 のように数式を挿入したり、独立した行に

$$ \int_0^\infty f(x)dx $$

のように中央揃えの数式を挿入したりできます。

テキストセルは、ダブルクリックすると、再編集できます。

どのセルも、↑ ↓ ボタンで上下に移動できます。

データの読み込ませ方

Web で提供されているデータなら、URL 指定で読み込めるので簡単です:

import pandas as pd

df = pd.read_csv("https://okumuralab.org/~okumura/python/data/pop2020.csv")

Web で提供されていないファイルを読み込ませるには、まずそのファイルを Google Colaboratory の仮想マシンに転送しなければなりません。左端にあるフォルダーマーク 🗂 をクリックすれば、Google Colaboratory のカレントディレクトリ /content の中身が見えます。sample_data というフォルダーがあり、練習用データがいくつか入っています。この中(sample_data の中ではなく、それと同じレベルの場所)にドラッグ&ドロップでファイルを転送すれば、Python から簡単に読めます:

df = pd.read_csv("filename.csv")

sample_data の中のものは、例えば次のようにして読めます:

df = pd.read_csv("sample_data/california_housing_train.csv")

Google Colaboratory の中身

Google Colaboratory は一つの仮想マシンの上で実行されています。他人にじゃまされずに一つのマシンを無料で使うことができるので、たいへんありがたいサービスです。

ちなみに、動いている OS や Python のバージョンは次のようにして確かめられます。2024年4月現在、Ubuntu 22.04.3 の Python 3.10.12 のようです。

!cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
!df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         108G   28G   81G  26% /
tmpfs            64M     0   64M   0% /dev
shm             5.8G     0  5.8G   0% /dev/shm
/dev/root       2.0G  1.2G  821M  59% /usr/sbin/docker-init
tmpfs           6.4G   56K  6.4G   1% /var/colab
/dev/sda1        70G   46G   25G  66% /kaggle/input
tmpfs           6.4G     0  6.4G   0% /proc/acpi
tmpfs           6.4G     0  6.4G   0% /proc/scsi
tmpfs           6.4G     0  6.4G   0% /sys/firmware
!free
               total        used        free      shared  buff/cache   available
Mem:        13290460      734844     7621540        1576     4934076    12228496
Swap:              0           0           0
!pwd
/content
import sys

sys.version
3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0]

GPUがあれば次のコマンドでわかります。

!nvidia-smi

インストールされている Python のパッケージは !pip list でわかります。

!pip list
Package                          Version
-------------------------------- ---------------------
absl-py                          1.4.0
aiohttp                          3.9.5
aiosignal                        1.3.1
alabaster                        0.7.16
albumentations                   1.3.1
altair                           4.2.2
annotated-types                  0.7.0
anyio                            3.7.1
argon2-cffi                      23.1.0
argon2-cffi-bindings             21.2.0
array_record                     0.5.1
arviz                            0.15.1
astropy                          5.3.4
astunparse                       1.6.3
async-timeout                    4.0.3
atpublic                         4.1.0
attrs                            23.2.0
audioread                        3.0.1
autograd                         1.6.2
Babel                            2.15.0
backcall                         0.2.0
beautifulsoup4                   4.12.3
bidict                           0.23.1
bigframes                        1.9.0
bleach                           6.1.0
blinker                          1.4
blis                             0.7.11
blosc2                           2.0.0
bokeh                            3.3.4
bqplot                           0.12.43
branca                           0.7.2
build                            1.2.1
CacheControl                     0.14.0
cachetools                       5.3.3
catalogue                        2.0.10
certifi                          2024.6.2
cffi                             1.16.0
chardet                          5.2.0
charset-normalizer               3.3.2
chex                             0.1.86
click                            8.1.7
click-plugins                    1.1.1
cligj                            0.7.2
cloudpathlib                     0.18.1
cloudpickle                      2.2.1
cmake                            3.27.9
cmdstanpy                        1.2.4
colorcet                         3.1.0
colorlover                       0.3.0
colour                           0.1.5
community                        1.0.0b1
confection                       0.1.5
cons                             0.4.6
contextlib2                      21.6.0
contourpy                        1.2.1
cryptography                     42.0.8
cuda-python                      12.2.1
cudf-cu12                        24.4.1
cufflinks                        0.17.3
cupy-cuda12x                     12.2.0
cvxopt                           1.3.2
cvxpy                            1.3.4
cycler                           0.12.1
cymem                            2.0.8
Cython                           3.0.10
dask                             2023.8.1
datascience                      0.17.6
db-dtypes                        1.2.0
dbus-python                      1.2.18
debugpy                          1.6.6
decorator                        4.4.2
defusedxml                       0.7.1
distributed                      2023.8.1
distro                           1.7.0
dlib                             19.24.4
dm-tree                          0.1.8
docstring_parser                 0.16
docutils                         0.18.1
dopamine_rl                      4.0.9
duckdb                           0.10.3
earthengine-api                  0.1.408
easydict                         1.13
ecos                             2.0.14
editdistance                     0.6.2
eerepr                           0.0.4
en-core-web-sm                   3.7.1
entrypoints                      0.4
et-xmlfile                       1.1.0
etils                            1.7.0
etuples                          0.3.9
exceptiongroup                   1.2.1
fastai                           2.7.15
fastcore                         1.5.46
fastdownload                     0.0.7
fastjsonschema                   2.20.0
fastprogress                     1.0.3
fastrlock                        0.8.2
filelock                         3.15.3
fiona                            1.9.6
firebase-admin                   5.3.0
Flask                            2.2.5
flatbuffers                      24.3.25
flax                             0.8.4
folium                           0.14.0
fonttools                        4.53.0
frozendict                       2.4.4
frozenlist                       1.4.1
fsspec                           2023.6.0
future                           0.18.3
gast                             0.5.4
gcsfs                            2023.6.0
GDAL                             3.6.4
gdown                            5.1.0
geemap                           0.32.1
gensim                           4.3.2
geocoder                         1.38.1
geographiclib                    2.0
geopandas                        0.13.2
geopy                            2.3.0
gin-config                       0.5.0
glob2                            0.7
google                           2.0.3
google-ai-generativelanguage     0.6.4
google-api-core                  2.11.1
google-api-python-client         2.84.0
google-auth                      2.27.0
google-auth-httplib2             0.1.1
google-auth-oauthlib             1.2.0
google-cloud-aiplatform          1.56.0
google-cloud-bigquery            3.21.0
google-cloud-bigquery-connection 1.12.1
google-cloud-bigquery-storage    2.25.0
google-cloud-core                2.3.3
google-cloud-datastore           2.15.2
google-cloud-firestore           2.11.1
google-cloud-functions           1.13.3
google-cloud-iam                 2.15.0
google-cloud-language            2.13.3
google-cloud-resource-manager    1.12.3
google-cloud-storage             2.8.0
google-cloud-translate           3.11.3
google-colab                     1.0.0
google-crc32c                    1.5.0
google-generativeai              0.5.4
google-pasta                     0.2.0
google-resumable-media           2.7.1
googleapis-common-protos         1.63.1
googledrivedownloader            0.4
graphviz                         0.20.3
greenlet                         3.0.3
grpc-google-iam-v1               0.13.0
grpcio                           1.64.1
grpcio-status                    1.48.2
gspread                          6.0.2
gspread-dataframe                3.3.1
gym                              0.25.2
gym-notices                      0.0.8
h5netcdf                         1.3.0
h5py                             3.9.0
holidays                         0.51
holoviews                        1.17.1
html5lib                         1.1
httpimport                       1.3.1
httplib2                         0.22.0
huggingface-hub                  0.23.4
humanize                         4.7.0
hyperopt                         0.2.7
ibis-framework                   8.0.0
idna                             3.7
imageio                          2.31.6
imageio-ffmpeg                   0.5.1
imagesize                        1.4.1
imbalanced-learn                 0.10.1
imgaug                           0.4.0
immutabledict                    4.2.0
importlib_metadata               7.2.0
importlib_resources              6.4.0
imutils                          0.5.4
inflect                          7.0.0
iniconfig                        2.0.0
intel-openmp                     2023.2.4
ipyevents                        2.0.2
ipyfilechooser                   0.6.0
ipykernel                        5.5.6
ipyleaflet                       0.18.2
ipyparallel                      8.8.0
ipython                          7.34.0
ipython-genutils                 0.2.0
ipython-sql                      0.5.0
ipytree                          0.2.2
ipywidgets                       7.7.1
itsdangerous                     2.2.0
jax                              0.4.26
jaxlib                           0.4.26+cuda12.cudnn89
jeepney                          0.7.1
jellyfish                        1.0.4
jieba                            0.42.1
Jinja2                           3.1.4
joblib                           1.4.2
jsonpickle                       3.2.2
jsonschema                       4.19.2
jsonschema-specifications        2023.12.1
jupyter-client                   6.1.12
jupyter-console                  6.1.0
jupyter_core                     5.7.2
jupyter-server                   1.24.0
jupyterlab_pygments              0.3.0
jupyterlab_widgets               3.0.11
kaggle                           1.6.14
kagglehub                        0.2.5
keras                            2.15.0
keyring                          23.5.0
kiwisolver                       1.4.5
langcodes                        3.4.0
language_data                    1.2.0
launchpadlib                     1.10.16
lazr.restfulclient               0.14.4
lazr.uri                         1.0.6
lazy_loader                      0.4
libclang                         18.1.1
librosa                          0.10.2.post1
lightgbm                         4.1.0
linkify-it-py                    2.0.3
llvmlite                         0.41.1
locket                           1.0.0
logical-unification              0.4.6
lxml                             4.9.4
malloy                           2023.1067
marisa-trie                      1.2.0
Markdown                         3.6
markdown-it-py                   3.0.0
MarkupSafe                       2.1.5
matplotlib                       3.7.1
matplotlib-inline                0.1.7
matplotlib-venn                  0.11.10
mdit-py-plugins                  0.4.1
mdurl                            0.1.2
miniKanren                       1.0.3
missingno                        0.5.2
mistune                          0.8.4
mizani                           0.9.3
mkl                              2023.2.0
ml-dtypes                        0.2.0
mlxtend                          0.22.0
more-itertools                   10.1.0
moviepy                          1.0.3
mpmath                           1.3.0
msgpack                          1.0.8
multidict                        6.0.5
multipledispatch                 1.0.0
multitasking                     0.0.11
murmurhash                       1.0.10
music21                          9.1.0
natsort                          8.4.0
nbclassic                        1.1.0
nbclient                         0.10.0
nbconvert                        6.5.4
nbformat                         5.10.4
nest-asyncio                     1.6.0
networkx                         3.3
nibabel                          4.0.2
nltk                             3.8.1
notebook                         6.5.5
notebook_shim                    0.2.4
numba                            0.58.1
numexpr                          2.10.1
numpy                            1.25.2
nvtx                             0.2.10
oauth2client                     4.1.3
oauthlib                         3.2.2
opencv-contrib-python            4.8.0.76
opencv-python                    4.8.0.76
opencv-python-headless           4.10.0.84
openpyxl                         3.1.4
opt-einsum                       3.3.0
optax                            0.2.2
orbax-checkpoint                 0.4.4
osqp                             0.6.2.post8
packaging                        24.1
pandas                           2.0.3
pandas-datareader                0.10.0
pandas-gbq                       0.19.2
pandas-stubs                     2.0.3.230814
pandocfilters                    1.5.1
panel                            1.3.8
param                            2.1.0
parso                            0.8.4
parsy                            2.1
partd                            1.4.2
pathlib                          1.0.1
patsy                            0.5.6
peewee                           3.17.5
pexpect                          4.9.0
pickleshare                      0.7.5
Pillow                           9.4.0
pip                              23.1.2
pip-tools                        6.13.0
platformdirs                     4.2.2
plotly                           5.15.0
plotnine                         0.12.4
pluggy                           1.5.0
polars                           0.20.2
pooch                            1.8.2
portpicker                       1.5.2
prefetch-generator               1.0.3
preshed                          3.0.9
prettytable                      3.10.0
proglog                          0.1.10
progressbar2                     4.2.0
prometheus_client                0.20.0
promise                          2.3
prompt_toolkit                   3.0.47
prophet                          1.1.5
proto-plus                       1.24.0
protobuf                         3.20.3
psutil                           5.9.5
psycopg2                         2.9.9
ptyprocess                       0.7.0
py-cpuinfo                       9.0.0
py4j                             0.10.9.7
pyarrow                          14.0.2
pyarrow-hotfix                   0.6
pyasn1                           0.6.0
pyasn1_modules                   0.4.0
pycocotools                      2.0.8
pycparser                        2.22
pydantic                         2.7.4
pydantic_core                    2.18.4
pydata-google-auth               1.8.2
pydot                            1.4.2
pydot-ng                         2.0.0
pydotplus                        2.0.2
PyDrive                          1.3.1
PyDrive2                         1.6.3
pyerfa                           2.0.1.4
pygame                           2.5.2
Pygments                         2.16.1
PyGObject                        3.42.1
PyJWT                            2.3.0
pymc                             5.10.4
pymystem3                        0.2.0
pynvjitlink-cu12                 0.2.4
PyOpenGL                         3.1.7
pyOpenSSL                        24.1.0
pyparsing                        3.1.2
pyperclip                        1.9.0
pyproj                           3.6.1
pyproject_hooks                  1.1.0
pyshp                            2.3.1
PySocks                          1.7.1
pytensor                         2.18.6
pytest                           7.4.4
python-apt                       0.0.0
python-box                       7.2.0
python-dateutil                  2.8.2
python-louvain                   0.16
python-slugify                   8.0.4
python-utils                     3.8.2
pytz                             2023.4
pyviz_comms                      3.0.2
PyWavelets                       1.6.0
PyYAML                           6.0.1
pyzmq                            24.0.1
qdldl                            0.1.7.post3
qudida                           0.0.4
ratelim                          0.1.6
referencing                      0.35.1
regex                            2024.5.15
requests                         2.31.0
requests-oauthlib                1.3.1
requirements-parser              0.9.0
rich                             13.7.1
rmm-cu12                         24.4.0
rpds-py                          0.18.1
rpy2                             3.4.2
rsa                              4.9
safetensors                      0.4.3
scikit-image                     0.19.3
scikit-learn                     1.2.2
scipy                            1.11.4
scooby                           0.10.0
scs                              3.2.4.post3
seaborn                          0.13.1
SecretStorage                    3.3.1
Send2Trash                       1.8.3
sentencepiece                    0.1.99
setuptools                       67.7.2
shapely                          2.0.4
shellingham                      1.5.4
simple_parsing                   0.1.5
six                              1.16.0
sklearn-pandas                   2.2.0
smart-open                       7.0.4
sniffio                          1.3.1
snowballstemmer                  2.2.0
sortedcontainers                 2.4.0
soundfile                        0.12.1
soupsieve                        2.5
soxr                             0.3.7
spacy                            3.7.5
spacy-legacy                     3.0.12
spacy-loggers                    1.0.5
Sphinx                           5.0.2
sphinxcontrib-applehelp          1.0.8
sphinxcontrib-devhelp            1.0.6
sphinxcontrib-htmlhelp           2.0.5
sphinxcontrib-jsmath             1.0.1
sphinxcontrib-qthelp             1.0.7
sphinxcontrib-serializinghtml    1.1.10
SQLAlchemy                       2.0.31
sqlglot                          20.11.0
sqlparse                         0.5.0
srsly                            2.4.8
stanio                           0.5.0
statsmodels                      0.14.2
StrEnum                          0.4.15
sympy                            1.12.1
tables                           3.8.0
tabulate                         0.9.0
tbb                              2021.13.0
tblib                            3.0.0
tenacity                         8.4.1
tensorboard                      2.15.2
tensorboard-data-server          0.7.2
tensorflow                       2.15.0
tensorflow-datasets              4.9.6
tensorflow-estimator             2.15.0
tensorflow-gcs-config            2.15.0
tensorflow-hub                   0.16.1
tensorflow-io-gcs-filesystem     0.37.0
tensorflow-metadata              1.15.0
tensorflow-probability           0.23.0
tensorstore                      0.1.45
termcolor                        2.4.0
terminado                        0.18.1
text-unidecode                   1.3
textblob                         0.17.1
tf_keras                         2.15.1
tf-slim                          1.1.0
thinc                            8.2.5
threadpoolctl                    3.5.0
tifffile                         2024.6.18
tinycss2                         1.3.0
tokenizers                       0.19.1
toml                             0.10.2
tomli                            2.0.1
toolz                            0.12.1
torch                            2.3.0+cu121
torchaudio                       2.3.0+cu121
torchsummary                     1.5.1
torchtext                        0.18.0
torchvision                      0.18.0+cu121
tornado                          6.3.3
tqdm                             4.66.4
traitlets                        5.7.1
traittypes                       0.2.1
transformers                     4.41.2
triton                           2.3.0
tweepy                           4.14.0
typer                            0.12.3
types-pytz                       2024.1.0.20240417
types-setuptools                 70.1.0.20240625
typing_extensions                4.12.2
tzdata                           2024.1
tzlocal                          5.2
uc-micro-py                      1.0.3
uritemplate                      4.1.1
urllib3                          2.0.7
vega-datasets                    0.9.0
wadllib                          1.3.6
wasabi                           1.1.3
wcwidth                          0.2.13
weasel                           0.4.1
webcolors                        24.6.0
webencodings                     0.5.1
websocket-client                 1.8.0
Werkzeug                         3.0.3
wheel                            0.43.0
widgetsnbextension               3.6.6
wordcloud                        1.9.3
wrapt                            1.14.1
xarray                           2023.7.0
xarray-einstats                  0.7.0
xgboost                          2.0.3
xlrd                             2.0.1
xyzservices                      2024.6.0
yarl                             1.9.4
yellowbrick                      1.5
yfinance                         0.2.40
zict                             3.0.0
zipp                             3.19.2
import numpy as np

np.show_config()
openblas64__info:
    libraries = ['openblas64_', 'openblas64_']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None)]
    runtime_library_dirs = ['/usr/local/lib']
blas_ilp64_opt_info:
    libraries = ['openblas64_', 'openblas64_']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None)]
    runtime_library_dirs = ['/usr/local/lib']
openblas64__lapack_info:
    libraries = ['openblas64_', 'openblas64_']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None), ('HAVE_LAPACKE', None)]
    runtime_library_dirs = ['/usr/local/lib']
lapack_ilp64_opt_info:
    libraries = ['openblas64_', 'openblas64_']
    library_dirs = ['/usr/local/lib']
    language = c
    define_macros = [('HAVE_CBLAS', None), ('BLAS_SYMBOL_SUFFIX', '64_'), ('HAVE_BLAS_ILP64', None), ('HAVE_LAPACKE', None)]
    runtime_library_dirs = ['/usr/local/lib']
Supported SIMD extensions in this NumPy install:
    baseline = SSE,SSE2,SSE3
    found = SSSE3,SSE41,POPCNT,SSE42,AVX,F16C,FMA3,AVX2
    not found = AVX512F,AVX512CD,AVX512_KNL,AVX512_KNM,AVX512_SKX,AVX512_CLX,AVX512_CNL,AVX512_ICL

新しいパッケージをインストールするには例えば次のようにします:

!pip install japanize-matplotlib