Python初心者が迷わない!変数名を大文字にするだけで行列コードが劇的に読みやすくなる理由
こんにちは。ゆうせいです。
みなさんはPythonでプログラムを書いているとき、変数名に悩んだことはありませんか。適当に a や b と名付けて、後から読み返したときに「これって何の中身だっけ?」と頭を抱えた経験があるはずです。
特にデータ分析や機械学習の世界では、扱うデータの形によって名前の付け方に明確なルールが存在します。今回は、数学的な背景を踏まえた変数名のマナーについて、一緒に学んでいきましょう。
なぜ行列の変数名は大文字で書くのか
数学の授業を思い出してみてください。ベクトルは小文字の で書き、行列は
や
といった大文字で書くのが一般的ですよね。プログラミングの世界でも、この数学的な慣習をそのまま取り入れることが推奨されています。
スカラ・ベクトル・行列の違いを例えるなら
専門用語が出てきましたが、難しく考える必要はありません。お弁当屋さんを例にして解説しますね。
- スカラこれは単なる数値のことです。お弁当1個の値段が
円なら、その 500 という数字そのものがスカラです。
- ベクトル(小文字で表記)これは数値が並んだリストのことです。お弁当、お茶、割り箸のそれぞれの個数が並んだ注文リストをイメージしてください。
- 行列(大文字で表記)これは縦と横に数値が並んだ表のことです。月曜日から金曜日まで、それぞれの日のお弁当とお茶の注文個数をまとめた一覧表ですね。
単なる数字なら小文字、表形式のデータなら大文字。このルールを守るだけで、コードを見た瞬間に「あ、これは表データなんだな」と直感的に理解できるようになります。
Pythonとpandasでの具体的な書き方
実際にコードを見て、書き方の違いを体感してみましょう。
リスト(ベクトル)を扱う場合
数値の並びであるリストを作成するときは、小文字を使います。
prices = [500, 150, 10]
行列(NumPyやPandas)を扱う場合
一方で、複数のデータが縦横に並ぶ行列(Matrix)を扱うときは、大文字の などを使います。
import numpy as np
import pandas as pd
# NumPyでの行列作成
X = np.array([[1, 2], [3, 4], [5, 6]])
# pandasでのデータフレーム(行列)作成
df_sales = pd.DataFrame({
'lunch': [10, 12, 15],
'tea': [5, 8, 7]
})
X_data = df_sales.values
どうでしょうか。大文字の
が出てくるだけで、なんとなく「強そうなデータ(表データ)」が代入されている感じがしませんか。
大文字を使うメリットとデメリット
このルールを取り入れる際のポイントを整理しましょう。
メリット
- 数学の公式をコードに落とし込む際、数式とコードの見た目が一致するのでバグが減ります。
- チーム開発において、他の人がコードを読んだときにデータの構造を一瞬で把握できます。
- 自分自身が数日後にコードを読み返したとき、迷子になりません。
デメリット
- Pythonの標準的なコーディング規約(PEP8)では、変数名は基本的に小文字が推奨されています。そのため、行列以外でも大文字を使いすぎると、逆に読みづらくなる恐れがあります。
- シフトキーを押しながら入力する手間が、ほんの少しだけ増えます。
学習を深めるためのステップ
さて、行列の変数名を大文字にする大切さは伝わりましたか。もし「自分ならどう名付けるだろう」と迷ったら、まずは基本に忠実に、表データには大文字を使ってみてください。
これからの学習の指針を提案します。
- 数学における行列の計算方法を、基礎だけでもおさらいしてみましょう。
- NumPyやpandasの公式ドキュメントを読み、サンプルコードで大文字がどう使われているか観察してください。
- 実際に自分でデータ分析のコードを書き、変数名に魂を込めてみましょう。
次は、実際にこの大文字の変数を使って、行列の掛け算をプログラミングする方法です。
数学の教科書で見ると難しそうな行列の計算も、Pythonの手を借りれば驚くほどシンプルに記述できます。
行列の掛け算とは?
まずは、行列の掛け算について簡単におさらいしましょう。専門用語では「積(せき)」と呼びます。
組み合わせの「総当たり計算」とイメージして
行列の掛け算は、単なる数字の掛け算とは少し違います。
例えば、 =「商品ごとの単価表(お弁当 500円、お茶 150円)」
=「日ごとの注文数表(月曜日はお弁当10個とお茶5本、火曜日は…)」 という2つの表があったとします。
この2つを掛け合わせることで、「月曜日の合計金額」「火曜日の合計金額」といった新しい表を作り出すのが行列の掛け算です。
左側の表の「横一行」と、右側の表の「縦一列」をそれぞれ掛け算して足し合わせるという、ちょっと特殊なルール(内積といいます)で動いています。
NumPyとpandasで書く行列の掛け算
それでは、実際にコードを書いてみましょう。Pythonでこれを行うには、NumPy(ナンパイ)というライブラリを使うのが最も一般的です。
NumPyを使ったスマートな書き方
NumPyでは、 という記号を使うだけで行列の掛け算ができてしまいます。
import numpy as np
# 行列A(2行3列のデータ)
A = np.array([[1, 2, 3], [4, 5, 6]])
# 行列B(3行2列のデータ)
B = np.array([[7, 8], [9, 10], [11, 12]])
# 行列の掛け算を実行
C = A @ B
どうですか。 という数式そのままの見た目で書けていますよね。
pandasでの計算方法
データ分析の現場でよく使うpandasでも、同様の操作が可能です。
import pandas as pd
# データフレームを定義(大文字で始めるのがコツ)
DF_A = pd.DataFrame([[1, 2], [3, 4]])
DF_B = pd.DataFrame([[5, 6], [7, 8]])
# dotメソッド、または@記号で掛け算
Result = DF_A.dot(DF_B)
ソースコードの直後に余計な空行は入れないようにしましょう。
あなたのコードがより美しくなることを応援しています。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール


