現在勉強中のPythonによるデータ分析の教科書の中にある、Numpyの使い方を自分の備忘録とNumpy勉強中の人の参考になればと書いてます。
内容は順次追加していく予定です。
環境
- Windows10
- Python 3.8.1
- numpy 1.19.4
- jupyter 1.0.0
- jupyter-client 6.1.7
- jupyter-console 6.2.0
- jupyter-core 4.7.0
- jupyterlab-pygments 0.1.2
事前準備
Numpyを利用するときは初めにnumpyモジュールをインポートしてください。
モジュール:import numpy as np
各種設定
実行した結果はすべてJupyter Notebookの出力結果を載せています。
1次元配列を作る
1次元配列を作る場合は「array」関数を使います。
使い方
np.array([任意の数字])
a = np.array([1, 2, 3])
結果
array([1, 2, 3])
配列ができましたね。
2次元配列を作る
2次元配列を作る場合も同様に「array」関数を使います。
使い方
np.array([[任意の数字(行)], [任意の数字(列)]])
a = np.array([[1, 2, 3], [4, 5, 6]]) a
結果
array([[1, 2, 3], [4, 5, 6]])
2次元配列ができました。
数列を返す(arange)
連続した数字を作成する場合は「arange(任意の数字)」を使います。
使い方
np.arange(作成したい個数)
np.arange(10)
結果
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
0から9までの配列ができましたね。
単位行列を作る(eye)
単位行列とは、左上から右下までが「1」、それ以外が「0」の行列のことです。単位行列を作成する場合は「eye」を使います。
使い方
np.eye(作成したい数)
np.eye(5)
結果
array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
5行5列の単位行列ができました。
指定した数値で配列を作る
指定した数値で配列を作る場合は「full」を使います。
使い方
np.full(作成する数, 作成したい数値)
np.full(3, np.e)
※2次元配列を作成する場合は、「np.full((2,3), np.e)」のように配列で指定します。
結果
array([2.71828183, 2.71828183, 2.71828183])
※2次元配列指定
array([[2.71828183, 2.71828183, 2.71828183],
[2.71828183, 2.71828183, 2.71828183]])
ネイピア数が3つ作られました。
また2次元配列も2行3列で作られてます。
転置する
2次元配列の行と列を入れ替えることを転置といいます。
転置をする場合は「T」を使います。
使い方
転置したい変数.T
a = np.array([[1, 2, 3], [4, 5, 6]]) a.T
結果
array([[1, 4], [2, 5], [3, 6]])
転置され、行と列が入れ替わりましたね。
次元数を減らす
2次元を1次元に減らす場合は「ravel」メソッドを使います。
使い方
次元を減らしたい変数.ravel()
a = np.array([[1, 2, 3], [4, 5, 6]]) a2 = a.ravel()
結果
array([1, 2, 3, 4, 5, 6])
2次元配列から1次元配列になりました。
指定した範囲内で均等に割りデータを作る
指定した範囲内で均等に割りデータを作る場合は「linspace」関数を使います。
使い方
np.linspace(開始の数, 終了の数字, 分ける個数)
np.linspace(0, 1, 5)
結果
array([0. , 0.25, 0.5 , 0.75, 1. ])
0から1までの数字が5分割されてます。
連結する
配列をの連結をする場合は「concatenate」関数や「hstack」関数を使います。
使い方
np.concatenate([結合したい変数1, 結合したい変数2])
np.hstack([結合したい変数1, 結合したい変数2])
a1 = np.array([1, 2, 3]) a2 = np.array([3, 4, 5]) np.concatenate([a1, a2])
np.hstack([a1, a2])
結果
array([1, 2, 3, 3, 4, 5])
a1とa2の配列が結合されましたね。
ブロードキャストを使う
ブロードキャストとは、配列の中のデータに直接演算ができる機能です。ブロードキャストと聞くとネットワークをやっている人は別のことを思い浮かべますね(笑)
使い方
特別な関数などはなく、通常通りに変数の計算をするだけです。
a = np.array([0, 9, 99, 999]) a = a + 1
結果
array([ 1, 10, 100, 1000])
すべての配列に「+1」されました。
ドット積を使う
ドット積とは、2つのベクトルに対して演算を行うベクトルの内積を行う機能です。計算式は次のようになります。
- 計算式
a[a1, a2] * b[b1, b2] = a1*b1 + a2*b2
例えば、a=[1, 2]、b=[3, 4]の配列があったとします。
これらのドット積を計算すると以下のようになります。
1*3 + 2*4 = 11
使い方
np.dot(配列1, 配列2)
もしくは、Python3.5以降では、@演算子が使えます。
配列1 @ 配列2
a = np.array([1, 2])
b = np.array([3, 4])
np.dot(a, b)
または
a @ b
結果
11
内積計算され、「11」になりました。
以上です。
これからも追加していきますので、定期的に見に来ていただければと思います。
参考にしている本
[amazon asin=”4798158348″ kw=”Pythonによるあたらしいデータ分析の教科書”]
以上です。ありがとうございました。
コメント