初心者向け学習方法一覧はこちら
今回はPythonのライブラリであるNumpyとMatplotlibを用いた数値計算の方法を紹介します。
この記事ではPythonを使った数値計算の方法を紹介するもので数値計算のアルゴリズムをこまかく紹介するものではないためご注意ください!
Pythonについても紹介しているのでそもそもPythonとは?という方やPythonのインストール方法がわからない方はこちらの記事をどうぞ!
Numpyとは?
Numpyとは配列・行列・テンソルを扱うことができる数値計算用のパッケージとなっています。
配列・行列・テンソルを表現できるだけでなく行列積も簡単に実装することができるため数値計算を使用するなら必携のパッケージとなっています。
さらに計算の大半をPythonに内蔵されているC言語で処理するためNumpyを使用した方が圧倒的に速い計算速度で計算ができます。
英語ですがNumpyの公式ドキュメントはこちらです。
Numpyの使用方法ですが、まずNumpyを自分のPCにインストールするには以下のコマンドをWindows上であればコマンドプロンプト、Macであればターミナルに入力する必要があります。
pip3 install numpy
インストールできているか確認するためには、
pip freeze
と入力し、インストールされたパッケージの一覧を表示してその中から「numpy==[バージョン情報]」が記載されているものがあればインストールが完了しています。
使用するときにはPythonのコードに以下の文言を冒頭に入力する必要があります。
import numpy as np
この「import numpy」の部分はNumpyモジュールを自分のPCから呼び出す際に使用する為に必要で「as np」という部分は毎回「numpy」とせずにこれからは「np」と書きますという意味です。
「np」とするのが慣例なので他の人に読まれることを仮定するならば「np」とするべきですが、個人的な利用で手間を省きたいというのであればなんでも構いません。
Matplotlibとは?
Matlibとはグラフ描画ができるパッケージです。
データだけでは視覚的に理解することは難しいので結果をグラフで可視化するのが良いです。
こちらも英語ですがMatplotlibの公式ドキュメントはこちらです。
Matplotlibの使用方法ですが、まずMatplotlibを自分のPCにインストールするには以下のコマンドをWindows上であればコマンドプロンプト、Macであればターミナルに入力する必要があります。
pip3 install matplotlib
インストールできているか確認するためには
pip freeze
と入力し、インストールされたパッケージの一覧を表示してその中から「matplotlib==[バージョン情報]」が記載されているものがあればインストールが完了しています。
使用するときにはPythonのコードに以下の文言を冒頭に入力する必要があります。
import matplotlib.pyplot as plt
呼び方は「plt」とするのが慣例です。
オプションの多様性、見やすさから数値計算で使用するならMatplotlibが主流ですがキャッチーなグラフを描画したい方には「Seaborn」というパッケージもおすすめです。
Numpyを使用した行列の計算方法
Numpyで使用する配列は通常のPythonで使用されるリストとは異なります。
これはNumpyで短い行で配列の計算や関数の計算をする為です。
しかしすでにPythonのリストを使ってしまってNumpyを採用する為に今更すべてのコードを変更するのも大変な方もいらっしゃるかと思います。
そんな時でもNumpyはサポートしてくれます。
「np.array([Python配列名])」とすることでPythonのリストをNumpy配列に変換してくれます。
数値を代入した場合このようになります。
import numpy as np
A_Python = [[0,1],[2,3],[4,5]]
A_Numpy = np.array(A_Python)
print(type(A_Python))
print(type(A_Numpy))
print(A_Numpy)
#出力結果
#<class 'list'>
#<class 'numpy.ndarray'>
#[[0 1]
#[2 3]
#[4 5]]
これによってNumpy配列を使用することができるようになりました。
Numpy配列の計算方法を紹介します。
まず行列積についてです。
行列の積はNumpyを使用すると「np.dot([行列1],[行列2])」とたった1行で表すことができます。
数値を代入した場合このようになります。
import numpy as np
A_Python = [[0,1],[2,3],[4,5]]
B_Python = [[2,1],[4,3],[6,5]]
A_Numpy = np.array(A_Python)
B_Numpy = np.array(B_Python)
C = np.dot(A_Numpy.T,B_Numpy)
print(C)
#出力結果
#[[32 26]
#[44 35]]
行列積を使用する際に「A_Numpy.T」となっているのは行列の転置を行っています。
行列積ができる形に変換する為に使用しました。
また、Numpyを使用するのは行列の扱いが簡単になるからだけではありません。
関数を作成するときにもNumpyは使用します。
通常の四則演算+α程度であればfor文やリスト内包表記を使用せずともNumpy配列を使用することで配列のまま計算をすることができます!
言葉だけではわかりづらいと思いますので実際にコードを交えながら説明します。
import numpy as np
x=np.linspace(0,10,5)
y=np.exp(x)
print(x)
print(y)
#出力結果
#[ 0. 2.5 5. 7.5 10. ]
#[1.00000000e+00 1.21824940e+01 1.48413159e+02 1.80804241e+03
#2.20264658e+04]
ちなみに「np.linspace(0,10,10)」というのはNumpy配列を0から10までの範囲に要素が5個になるように作成する為のコードです。
計算を配列ごと行う事が可能でさらに計算速度もPythonを通常使用するよりも圧倒的に速い訳ですから数値計算をする上でNumpyを使わない手はありません!
Matplotlibを使用したグラフの描画方法
Matplotlibでグラフを描画する方法はシンプルです。
グラフを描画するときに最低限必要なコードは「x軸にするデータ」「y軸にするデータ」「plt.plot(x,y)」「plt.show()」です。
コードで表すとこのようになります。
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,10,100)
y=np.exp(x)
plt.plot(x,y)
plt.show()
出力されたグラフはこのようになります。
これだけでもある程度はわかりやすいですがもう少しカスタマイズしていきます。
追加したコードにはコード内にそれぞれに説明を記載しました。
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,10,100)
y=np.exp(x)
plt.xlabel("x")#x軸nラベルを追加
plt.ylabel("exp(x)")#y軸のラベルを追加
plt.plot(x,y,color="red",label="exp(x)",ls="--")
#色を青から赤に変更・凡例の下準備・線を点線に変更
plt.legend()
plt.show()
まとめ
今回はNumpyを用いた数値計算の方法とMatplotlibを用いたグラフの描画の方法を紹介しました。
ほかにもPythonについての記事があるのでよければこちらもどうぞ!
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け