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 は一つの仮想マシンの上で実行されています。他人にじゃまされずに一つのマシンを無料で使うことができるので、たいへんありがたいサービスです。
ちなみに、動いている 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