print("Hello, World!")Hello, World!
本章では,Python のコードを実行する方法と,変数,数値の計算,リスト,関数の呼び出しを扱う.短いコードを読み,計算や表示の結果を確かめながら,基本的な使い方を身に付ける.
ここでは,Python を体系的に学ぶことよりも,示されたコードを読み,その内容を理解したうえで,少し書き換えて活用できるようになることを目指す.
データサイエンスでは,データを読み込み,統計量を計算したり,グラフを描いたり,モデルを当てはめたりする.Python には,こうした作業に役立つライブラリが豊富にそろっている.
本書では,主に数値計算に NumPy,可視化に Matplotlib,機械学習に scikit-learn を用いる.また,確率分布を扱う際には,科学技術計算のためのライブラリである SciPy も利用する.このほか,表形式のデータを扱うライブラリとして pandas もある.NumPy の基本的な使い方は チャプター 3 で説明し,そのほかの本書で用いるライブラリについては,必要に応じて各章で紹介する.
また,Python は文法が比較的簡潔で,コードを読み書きしやすく,初心者にも学びやすい言語である.こうした点から,本書では Python を用いてデータサイエンスの手法を実際に試していく.
本書のコードは,以下の手順で実行できる.
コードは,原則として各章の上から順に実行する.前のコードで作成した変数や定義した関数を,後のコードで使うことがあるためである.
練習 1.1 (最初の Python プログラム) Google Colab で以下のコードを実行し,画面に Hello, World! と表示されることを確認せよ.
print("Hello, World!")Hello, World!
変数とは,値に付ける名前である.整数,浮動小数点数,文字列,ブール値など,さまざまな型の値に名前を付けることができる.変数に値を代入するには,= を使う.
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 の値を表示せよ.
数値の計算には,次の算術演算子を使う.
| 演算子 | 意味 | 例 | 結果 |
|---|---|---|---|
+ |
加算 | 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
べき乗は ** を使って計算する.指数に分数を指定すると,根を求めることができる.a > 0,n を正の整数とすると,a^{1/n} は,n 乗すると a になる正の数である.例えば,8^{1/3} = 2 であり,次のように計算する.
print(8 ** (1 / 3)) # 2.02.0
指数全体を丸括弧で囲み,1 / 3 を先に計算する.8 ** 1 / 3 と書くと,8^1 / 3 の計算になる.
練習 1.3 2^{10} を計算し,print() 関数を使って結果を表示せよ.
練習 1.4 16^{1/4} の値を計算し,print() 関数で表示せよ.
数学では,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) # 2525
練習 1.5 x = 4 のとき,x^2 + 2x + 1 の値を計算し,print() 関数で表示せよ.
リストは,複数の値を順序付けて格納するためのデータ構造である.リストを作成するには,角括弧 [] の中に,要素をカンマ , で区切って書く.
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 番目の位置を表し,この位置の要素だけが変更される.
練習 1.6 リスト colors に “red”, “green”, “blue” の3つの要素を格納し,print() 関数を使って colors の値を表示せよ.
関数とは,特定の処理をまとめたものである.関数に渡す値を「引数」,関数が処理の結果として返す値を「戻り値」という.
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) # 33
このほか,sum() 関数は数値のリストの合計を返し,max() 関数はリストの最大値を返す.
例 1.2 次のコードでは,sum() 関数でリスト numbers の要素の合計を求め,変数 total に代入して表示する.
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 1515
練習 1.7 max() 関数を使って,リスト numbers の最大値を計算せよ.
練習 1.8 リスト numbers = [2, 4, 6, 8, 10] を作成し,len() と sum() を使って,要素の個数,合計,平均を求め,それぞれ表示せよ.平均は,合計を要素の個数で割ると求められる.
チャプター 2 では,条件分岐や繰り返し,関数の定義,モジュールの使い方を学ぶ.