“学びたい”を刺激するメディア。

2022.02.04

column

Google Colabで手を動かして覚える、Pythonライブラリの使い方

Google Colabで手を動かして覚える、Pythonライブラリの使い方

Pythonは、プログラミング初心者にもとっつきやすく、またビジネスでの使い勝手が良いとして注目を集めるプログラミング言語です。そんなPythonの概念から活用方法まで、無料ツールGoogle Colabを使ったデモ付きで学べるのが、『Pythonと実データで遊んで学ぶデータ分析講座』の著者・梅津雄一先生が講師を務める『Python超入門』です。

最終回となる第2回では、いよいよPythonの豊富なライブラリを用いて簡単な可視化ツールを作成していきます。
その模様を早速見ていきましょう!

目次

  • 「ライブラリ」を読み込んで平方根を計算してみよう
  • 「ライブラリ」のインストール方法は?
  • 「Numpy」「Pandas」「Plotly」を使ってみよう

 

 

「ライブラリ」を読み込んで平方根を計算してみよう

 

 

第一回の復習を経て、授業の目標として示されたのが以下の画面。総務省のサイトから衆議院議員選挙のデータを読み込み、前回からの投票率、投票率の変化がグラフで可視化されています。

 

 

 

ライブラリとは、コンピュータへの指示をまとめた関数の集まりのこと。活用することでプログラミングの手間を数分の一、数十分の一にまで削減できます。今回紹介されるライブラリとして、以下の3つが提示されました。

 

・Numpy
…ベクトルや行列などの数値演算を行うことができる

 

・Pandas
…表形式のデータを柔軟に操作・処理することができる
…Excel内でできることは代替可能

 

・Plotly
…動的な可視化を行うことができる

 

ここで教務課からタイムラインに「Python超入門#2-ライブラリ導入」というタイトルのGoogle Colabファイルへのリンクが共有されました。ここからは、先生が作成した教材を用いながら、実際に手を動かして学んでいくことになります。

 

さて、最初に押さえておかなければならないのが「ライブラリの読み込み」方法です。「import “ライブラリ名”」とプログラミング画面に記述してみてください。

 

試しにさまざまな数学関数を呼び出せるライブラリ ‘math’を読み込んでみます。

 

import math

 

‘math’が読み込めたら早速平方根を計算させてみます。

 

Math.sqrt(3)

 

上記の通り記述し、「Shift + Enter」で実行すると「1.7320508075688772」と3の平方根が呼び出されました。

 

 

 

ほかにも ‘math’ライブラリでできることはさまざま。

 

・math.sin(x):サイン関数
・math.cos(x):コサイン関数
・math.factorial(x):階乗

 

それぞれ以下のように数値を入力し、実行すれば、それぞれ「0.0」「1.0」「6」という結果が呼び出されるはずです。

 

math.sin(0)
math.cos(0)
math.factorial(3)

 

どのような関数がライブラリに格納されているのか知りたい場合は、「help(“ライブラリ名”)」を実行してみてください。関数一覧が直ちに呼び出されるはずです。ただし、英語で記述されているため、ブラウザで日本語ドキュメントを検索する手段も併用しつつ、ライブラリについての理解を深めていきましょう。

 


「ライブラリ」のインストール方法は?

Google Colab上には、事前によく使われるライブラリがインストールされています。その一覧を確認したい場合は「!pip list」を実行してください。目当てのライブラリが見当たらない場合は「!pip install “ライブラリ名”」を使いましょう。例えば日本語の文章を形態素解析してくれる「mecab-python」は元々インストールされていないため、「!pip install mecab-python3」とバージョン名をつけて記述し、インストールする必要があります。

 

 

 

ライブラリ名は文字数が多く、何度も記述するのが億劫に感じられる場合もあります。そんなときは「import “ライブラリ名” as “任意の名称”」と記述することで、ライブラリの名前を付け替えることができます。例えば「ume」というあだ名をつけたい場合は、以下のように記述してみてください。

 

import math as ume

 

ここで簡単な質疑応答の時間が設けられました。

 

「Google ColabへのインストールはGoogle Driveに紐づくのか」についての質問への梅津先生の答えは、「NO」。Driveの中にインストールされるのではなく今記述している画面に一時的に読み込まれている状態のため、時間がたてばもう一度「!pip install」を実行し、読み込む必要があります。

 

そのため、Google Colabを活用する場合には、ライブラリの読み込み過ぎでGoogle DriveやPCのストレージが圧迫されるのではないかと気にする必要はありません。そもそもライブラリはテキストデータのため、大量にインストールしてもPCの動作に影響を与えるリスクはそこまで大きくないと考えられます。

 


「Numpy」「Pandas」「Plotly」を使ってみよう

それでは「Numpy」「Pandas」「Plotly」の3つのライブラリの使い方をデモで学んでいきましょう。

 

まずは「Numpy」を「import numpy as np」と別名をつける形で読み込みます。
さて、ここで記述されたのが以下のプログラム。

 

arr = np.array([1,2,3,4])

 

これにより、arrに1次元配列を含む変数が読み込まれました。「arr」を記述し実行すると「array([1,2,3,4])」と表示されるはずです。さらに、以下のように記述することで、行列のような2次元配列を読み込ませることも可能になります。

 

arr2 = np.array([[1,2,3,4],[3,6,7,8]])

 

ここから「.T」で読み込んだ配列を転置するなどの操作も紹介されました。

 

 

 

続いての「Pandas」は「import pandas as pd」で呼び出すのが慣例となっています。Pandasは、「pd.read_csv(“CSVファイル名”)」でCSVファイルを読み込んだり、「pd.read_excel(”エクセルファイル名”)」でExcelファイルを読み込んだりすることができます。

 

今回は、梅津先生が用意したカリフォルニアの住宅価格のCSVデータを読み込みました。

 

 

 

読み込んだファイルを実行すると、緯度、経度、地域の平均収入などさまざまなデータが表形式で表示されました。さらにshape関数を使ってデータが何行何列存在するのかを計算させたり、head関数を使ってデータの最初の数行のみ表示させたり、describe関数で平均値や最小値、最大値などを一気に計算させたりといった操作が行われます。ビッグデータを扱うのにpandasが非常に適しているということがわかりますね。

 

 

 

さて、最後の「Plotly」は以下の記述で呼び出されました。

 

import plotly
import plotly.graph_objs as go
import plotly.io as pio
pio.renderers.default = “colab”

 

「ちょっとごちゃごちゃしているんですが、現時点ではGoogle ColabでPlotlyを使うための設定だと思ってもらえれば問題ないです」と梅津先生。
Pandasで先ほどと同様にカリフォルニアの住宅価格データを読み込んだうえで、最初の200行を「iloc」関数で取得しました。

 

df = pd.read_csv(”CSVファイルのリンク”)
df = df,iloc[0:200,:]
df.head()

 

ここからPlotlyを使って散布図を書いてみます。

 

plot_data
go.Scatter(x=df["median_income"],y=df["median_house_value"], mode = 'markers',)
fig = go.Figure(plot_data)
fig.show()

 

すると、以下の画像の通り、一瞬で散布図が表示されました。

 

 

 

これによってデータ同士の相関関係や因果関係を読み取ることが容易になります。カーソルを合わせることでグラフを拡大したり、個々のデータの値を表示させたりすることも可能に。

 

「これはなかなかExcelとかではできない機能かなと思います」と梅津先生は語りました。

 

さて、3つのライブラリの概要が押さえられたらなんとなく、「衆議院議員選挙のデータ」をグラフ化する道筋が見えてきたのではないでしょうか。授業の後半では、先生と手を動かしながらゴールまでの道のりを体験することができます。

文=宮田文机

今回取り上げたSchooの授業はこちら!
『Python超入門-「身近なデータ」で実践プログラミング-』

 

今日の生放送

おすすめ記事

ペンシルからのプッシュ通知を設定しておくと、新着記事のお知らせなどをブラウザ上で受信できて便利です。

通知を受信しますか?