1  Python を使ってみよう

本章では,Python のコードを実行する方法と,変数,数値の計算,リスト,関数の呼び出しを扱う.短いコードを読み,計算や表示の結果を確かめながら,基本的な使い方を身に付ける.

ここでは,Python を体系的に学ぶことよりも,示されたコードを読み,その内容を理解したうえで,少し書き換えて活用できるようになることを目指す.

1.1 なぜ Python なのか

データサイエンスでは,データを読み込み,統計量を計算したり,グラフを描いたり,モデルを当てはめたりする.Python には,こうした作業に役立つライブラリが豊富にそろっている.

本書では,主に数値計算に NumPy,可視化に Matplotlib,機械学習に scikit-learn を用いる.また,確率分布を扱う際には,科学技術計算のためのライブラリである SciPy も利用する.このほか,表形式のデータを扱うライブラリとして pandas もある.NumPy の基本的な使い方は チャプター 3 で説明し,そのほかの本書で用いるライブラリについては,必要に応じて各章で紹介する.

また,Python は文法が比較的簡潔で,コードを読み書きしやすく,初心者にも学びやすい言語である.こうした点から,本書では Python を用いてデータサイエンスの手法を実際に試していく.

1.2 コードの実行

本書のコードは,以下の手順で実行できる.

  1. Google アカウントにログインする.
  2. Google Colab にアクセスする.
  3. 新しいノートブックを作成する.
  4. 本書のコードをコピーして,コードセルに貼り付ける.
  5. セルの左側にある「▶」ボタンをクリックして,コードを実行する.

コードは,原則として各章の上から順に実行する.前のコードで作成した変数や定義した関数を,後のコードで使うことがあるためである.

練習 1.1 (最初の Python プログラム) Google Colab で以下のコードを実行し,画面に Hello, World! と表示されることを確認せよ.

print("Hello, World!")
Hello, World!

1.3 変数

変数とは,値に付ける名前である.整数,浮動小数点数,文字列,ブール値など,さまざまな型の値に名前を付けることができる.変数に値を代入するには,= を使う.

x = 10             # 整数
y = 3.14           # 浮動小数点数
name = "Alice"     # 文字列
is_student = True  # ブール値

print(x)
print(y)
print(name)
print(is_student)
10
3.14
Alice
True

たとえば,x = 10 と書くと,変数 x に整数 10 が代入される.print(x) を実行すると,x の値である 10 が表示される.

ブール値は,真を表す True と偽を表す False のいずれかの値である.条件が成り立つかどうかを表すために使う.上の例では,is_student = True によって,学生であることを表している.

また,# 整数 のように,文字列の外に書かれた # から行末まではコメントとして扱われ,実行されない.コメントは,コードの意味や処理の意図を書き残すために使う.

練習 1.2 新しいセルを作成し,変数 a に 5 を代入せよ.その後,print() 関数を使って a の値を表示せよ.

1.4 数値の計算

数値の計算には,次の算術演算子を使う.

演算子 意味 例 結果
+ 加算 5 + 2 7
- 減算 5 - 2 3
* 乗算 5 * 2 10
/ 除算 5 / 2 2.5
% 剰余(割り算の余り) 5 % 2 1
** べき乗 5 ** 2 25

乗算と除算は,加算と減算より先に計算される.順序を変えたいときは,丸括弧 () を使う.

print(2 + 3 * 4)
print((2 + 3) * 4)
14
20

1.4.1 べき乗と根

べき乗は ** を使って計算する.指数に分数を指定すると,根を求めることができる.a > 0,n を正の整数とすると,a^{1/n} は,n 乗すると a になる正の数である.例えば,8^{1/3} = 2 であり,次のように計算する.

print(8 ** (1 / 3))  # 2.0
2.0

指数全体を丸括弧で囲み,1 / 3 を先に計算する.8 ** 1 / 3 と書くと,8^1 / 3 の計算になる.

練習 1.3 2^{10} を計算し,print() 関数を使って結果を表示せよ.

練習 1.4 16^{1/4} の値を計算し,print() 関数で表示せよ.

1.4.2 数式をコードで表す

数学では,2x のように乗算記号を省略できるが,Python では 2 * x と書く必要がある.また,分子や分母が複数の項からなる場合は,丸括弧を使って計算のまとまりを表す.例えば,\dfrac{x + 1}{x + 2} は (x + 1) / (x + 2) と書く.

数学では,\alpha や \beta のようなギリシャ文字も変数としてよく使われる.本書では,これらに対応する Python の変数名として alpha や beta を使う.

例 1.1 \alpha = 3,\beta = 4 のとき,\alpha^2 + \beta^2 は次のように計算できる.

alpha = 3
beta = 4
result = alpha ** 2 + beta ** 2
print(result)  # 25
25

練習 1.5 x = 4 のとき,x^2 + 2x + 1 の値を計算し,print() 関数で表示せよ.

1.5 リスト

リストは,複数の値を順序付けて格納するためのデータ構造である.リストを作成するには,角括弧 [] の中に,要素をカンマ , で区切って書く.

fruits = ["apple", "banana", "cherry"]
print(fruits)

numbers = [1, 2, 3, 4, 5]
print(numbers)
['apple', 'banana', 'cherry']
[1, 2, 3, 4, 5]

リストの要素は,[] の中に位置を表す整数を書いて取り出す.この整数を「インデックス」という.先頭から数える場合,インデックスは 0 から始まるため,先頭の要素は fruits[0] で取り出せる.また,インデックスを指定して要素を変更できる.

fruits = ["apple", "banana", "cherry"]
print(fruits[0])

fruits[1] = "orange"
print(fruits)
apple
['apple', 'orange', 'cherry']

図 1.1 に,リストのインデックスと要素の変更を示す.インデックス 1 は先頭から 2 番目の位置を表し,この位置の要素だけが変更される.

before 0 1 2 "apple" "banana" "cherry" after 0 1 2 "apple" "orange" "cherry" before->after  fruits[1] = "orange"
図 1.1: リストのインデックスと要素の変更。インデックスは 0 から始まる。

練習 1.6 リスト colors に “red”, “green”, “blue” の3つの要素を格納し,print() 関数を使って colors の値を表示せよ.

1.6 関数の呼び出し

関数とは,特定の処理をまとめたものである.関数に渡す値を「引数」,関数が処理の結果として返す値を「戻り値」という.

Python には,あらかじめ用意され,そのまま使える「組み込み関数」がある.これまで使ってきた print() もその一つで,引数として渡された値を画面に表示する.

次のコードは,print() を使って,文字列,整数,浮動小数点数,演算結果,リストを表示する例である.

print("This is a sample text.")
print(1)
print(3.14)
print(1 + 2)

numbers = [1, 2, 3, 4, 5]
print(numbers)
This is a sample text.
1
3.14
3
[1, 2, 3, 4, 5]

len() 関数は,リストの要素数や文字列の文字数を返す.リスト fruits は3つの要素を持つため,len(fruits) は 3 を返す.

fruits = ["apple", "banana", "cherry"]
length = len(fruits)
print(length)  # 3
3

このほか,sum() 関数は数値のリストの合計を返し,max() 関数はリストの最大値を返す.

例 1.2 次のコードでは,sum() 関数でリスト numbers の要素の合計を求め,変数 total に代入して表示する.

numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)  # 15
15

練習 1.7 max() 関数を使って,リスト numbers の最大値を計算せよ.

ヒントキーボードから値を入力する

コード中の値を書き換える代わりに,実行時に値を入力したいときは,input() 関数を使う.次のコードを Google Colab のセルに貼り付けて実行し,整数を入力して Enter キーを押してみよう.

x = int(input("Please enter an integer: "))
result = x + 5
print(result)

input() は,引数のメッセージを表示し,入力された内容を文字列として返す.ここでは,int() で整数に変換してから計算している.例えば,10 を入力すると 15 が表示される.

3.5 のような小数を入力したい場合は,int() の代わりに float() を使い,浮動小数点数に変換する.

1.7 総合練習

練習 1.8 リスト numbers = [2, 4, 6, 8, 10] を作成し,len() と sum() を使って,要素の個数,合計,平均を求め,それぞれ表示せよ.平均は,合計を要素の個数で割ると求められる.

1.8 まとめ

  • Google Colab では,セルにコードを書いて実行できる.
  • 変数を使うと,値に名前を付けて計算に利用できる.
  • リストを使うと,複数の値を順序付けて格納できる.
  • 組み込み関数を使うと,値の表示や要素数の取得,合計の計算などができる.

チャプター 2 では,条件分岐や繰り返し,関数の定義,モジュールの使い方を学ぶ.