NumPyについてのメモ

NumPyについて、使いそうなものを備忘録としてメモしておきます。
(修士の研究時代に使っていたがほとんど忘れていた、、、)
※あくまでメモとして使う用のため、解説などは一切書いておりません。

# 配列の作成 -> 基本、引数はlistを渡すことが原則
a = np.aarray([1,2,3]) #1次元行列 
b = np.array([[1,2,3],[4,5,6]]) #2次元行列 (同様にn次元に拡張可能)
c = np.arange(5) #range関数の配列ver 。listをrangeで作成するのと同様に考える
d = np.linspace(0,100,10) #始点0から終点100まで 、10刻みの配列を作成。rangeと異なり最後の値も配列に含まれる
d = np.zeros((2,3)) #2行3列の0で埋まった行列を作成 (引数はlistではなくtapple)

# 配列の情報取得
a.ndim #次元
a.size #要素数
a.shape #何行何列
a.dtype #要素の型

# 配列の変形
a.reshape(2,3) #行列を要素順に2行3列に変換 。変換前の行列と要素数が一致することが条件
a.ravel() #一次元に戻す 
a.T or a.transpose() #転地行列の作成 。reshapeと異なり要素の順番も変化する


続いて、配列同士の計算について、、、

ある行列A,Bについて考える

四則演算(+,-,*,/,//,%)については、行列の要素ごとに働きかけるため、
A + 2 #行列Aの各要素に2を足し合わせる 
A + B #行列Aと行列Bの各要素同士を足し合わせる 。行列の形式が一致していることが重要
dot(a,B) #行列同士の積 

A.sum() #行列の全要素の和を計算 
A.min() #最小値 
A.max() #最大値 
A.mean() #平均値 
A.std() #標準偏差 

A.sum(axis=0) #行方向の和 
A.sum(axis=1) #列方向の和 

A.sin(),A.cos(),A.tan() #三角関数 
A.arcsin(), ... #逆三角関数 
A.exp() #指数関数 
A.log(),A.log10() #対数関数 
A.abs() #絶対値 

NumPyの機能は多岐に渡るため、詳しいページに目を通したあと、使いたい操作がありかつ思い出せない場合に、都度ググれば良さそうです!
NumPyでググるだけでいくらでも一覧が出てくるので、こちらは苦労しなさそうです。
https://note.nkmk.me/numpy/
とかとてもわかり易くまとまっていますね。
配列には、リストと同様にスライス、カットなどが使用可能なことも覚えておけば、より便利に扱えそうです。

修士研究の際は、量子科学計算におけるシュレディンガー方程式を解く際によく使った覚えがあります。
当時は複数の波動関数が重ね合わさった量子式を解く際に、NumPyで一瞬で処理できることに感動を覚えたような、、、
数年経つと忘れてしまうことに衝撃を受けつつ、前回記事で書いたように、スタートラインとなるベース知識の習得に邁進します。


この記事が気に入ったらサポートをしてみませんか?