0.numpyの導入
インストール手順等は割愛する。ぱっと試すのであれば、googleアカウントがあればすぐ使える
Colaboratoryが便利。必要なライブラリをインポートしてから試す。
import numpy as np
1. NumPy配列の基礎
1-1 配列の作成と初期化
説明 |
記述方法 |
多次元配列の定義 |
np.array(10,15,20],[10,25,30) |
[x x x x x]という感じで、xは適当な値で配列初期化 |
np.empty(5) |
[[x x x] [x x x]]という感じで、xは適当な値で配列初期化 |
np.empty((2,3)) |
要素を0で初期化 |
np.zeros((3, 3)) |
要素を1で初期化 |
np.ones((3, 3)) |
自分で指定したい値で初期化 |
np.full((3, 3),9) |
適当なランダムな値で初期化 |
np.random.rand(3,3) |
1-2 配列の属性と情報
形状 |
a.shape |
データ型 |
a.dtype |
次元数 |
a.ndim |
※aが行列定義の変数の場合
2. 配列操作
2-1.インデックスとスライシング
行列の要素にアクセスするには[行,列]の順に指定すればOK。:は全てという意味。
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[0, 1]) # 2
print(a[:, 1]) # [2 5 8]
2-2.配列の変形
a = np.array([[1, 2], [3, 4],[5, 6]])
a.reshape(2,3) #リサイズ
a.T #転置行列
2-3.配列の結合と分割
a = np.array([[1, 2, 3],[4, 5, 6]])
b = np.array([[7, 8, 9],[10,11,12]])
c = np.concatenate((a, b),1) #第2引数1は列の軸で結合
d = np.split(c, 2) #分割
3.数学的操作
3-1.基本的な演算
- 行列 四則演算記号 数値の場合は、配列全ての要素に数値を足したり、引いたりできる
- 行列 四則演算記号 行列の場合は、配列同士の計算ができる
※四則演算を行う場合は数学的な制約を思い出すことも必要。
加減算を行う行列は同じサイズ(同じ行数と列数)であること。
左側の行列の列数と右側の行列の行数が一致していること。
A(m×n行列)とB(n×p行列)の積C=ABはm×p行列になる。
逆行列は正方行列(行数と列数が等しい行列)に対してのみ定義される。
行列式がゼロでない場合のみ、逆行列が存在する。
※行列 * 行列は行列積ではなく、要素ごとの乗算である点は注意。
行列積を表現したい場合は線形代数の章で紹介するnp.dot(a,b)またはa@bを使う。
3-2.線形代数
行列積 |
np.dot(a, b)またはa @ b |
逆行列 |
a = np.array(1, 2], [3, 4) np.linalg.inv(a) |
固有値 |
a = np.array(1, 2], [3, 4) np.linalg.eigvals(a) |
3-3.統計関数
最大値 |
np.max(a) |
最小値 |
np.min(a) |
合計 |
np.sum(a) |
平均 |
np.mean(a) |
中央値 |
np.median(a) |
分散 |
np.var(a) |
標準偏差 |
np.std(a) |
4.ブロードキャスティング
形状が異なる配列間で演算を行う際に、自動的に配列の形状を調整する機能を指す。
次元数が足りない方の配列を引き伸ばすことで計算を行う。
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
a+b #[[11, 22, 33],
[14, 25, 36]]
5.高度な操作
5-1.ユニバーサル関数
ndarrayの全要素に対して、演算を行う関数のこと。
a = np.array([[-1, 2, 3], [-4, 5, 6]])
np.abs(a) #絶対値の処理をするので、array([[1, 2, 3],[4, 5, 6]])を返す。
5-2.配列のソート
a = np.array([[-1, 2, 3], [4, -5, 6]])
np.sort(a) #rray([[-1, 2, 3],[-5, 4, 6]])を返す
6.勉強用サイト
最終更新:2025年03月04日 22:55