NumPy:【0埋め,単位行列,対角行列】作成方法
目次
サマリ
- np.zeros、np.zeros_like
- 0埋め、ゼロ埋め
- np.ones
- 1埋め
- np.full
- 全部埋め
- np.eye
- 単位行列
- np.diag
- 対角行列
前提
- np.arange
- np.reshape
サンプルコード
np.zeros(ゼロ埋め)
import numpy as np
a = np.zeros((3,2))
print(a)
print(a.shape)
[[0. 0.] [0. 0.] [0. 0.]] (3, 2)
- (3,2)
- 引数はタプル指定
- この例だと3行2列の2次元ndarray(NumPy配列)=行列になる
np.zeros_like(ゼロ埋め)
データ作成
import numpy as np
a = np.arange(0, 10).reshape(2,5)
print(a)
print(a.shape)
[[0 1 2 3 4] [5 6 7 8 9]] (2, 5)
- 形状(2,5)のndarray(NumPy配列)を作成
元のndarrayを利用して作成
b = np.zeros_like(a)
print(b)
print(b.shape)
[[0 0 0 0 0] [0 0 0 0 0]] (2, 5)
- np.zeros_like(…)
- 引数に指定したNumPy配列と同じ形の配列になる
- もちろん中身はすべてゼロ
- 形状は元のndarrayと同じ(2,5)になっている
np.ones(1埋め)
import numpy as np
a = np.ones((2,2,2))
print(a)
[[[1. 1.] [1. 1.]] [[1. 1.] [1. 1.]]]
- (2,2,2)
- 引数はタプル指定
- この例では3次元のndarray(NumPy配列)を作成
np.full(指定した数字で埋める)
import numpy as np
a = np.full((3,5), 10)
print(a)
print(a.shape)
[[10 10 10 10 10] [10 10 10 10 10] [10 10 10 10 10]] (3, 5)
- np.full(…)
- 引数の条件の通り指定した数字で埋めたndarray(NumPy配列)を返す
- (3,5)
- 作成するndarrayの形状
- 作成されたndarrayの形状は(3,5)になっている
- 10
- 埋め込む数字を指定
- 10で満たす
np.eye(単位行列)
import numpy as np
a = np.eye(5)
print(a)
print(a.shape)
[[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)
- 単位行列
- 2次元(行と列)
- 左上から対角方向に1が並ぶ
- それ以外はゼロ
- np.eye(…)
- 単位行列を作成
- 引数の数1が並ぶ
- 行と列が引数の値になる
- 形状は(5,5)になる
np.diag(対角行列)
データ作成
import numpy as np
a = np.arange(24).reshape(4,6)
print(a)
print(a.shape)
[[ 0 1 2 3 4 5] [ 6 7 8 9 10 11] [12 13 14 15 16 17] [18 19 20 21 22 23]] (4, 6)
- 形状(4,6)のndarray(NumPy配列)を作成
- 対角成分は0,7,14,21であることに注目
対角成分の取り出し
b = np.diag(a)
print(b)
print(b.shape)
[ 0 7 14 21] (4,)
- 対角成分が0,7,14,21が取り出された
- 形状は1次元の(4, )になっている
対角行列の作成
c = np.diag(b)
print(c)
print(c.shape)
[[ 0 0 0 0] [ 0 7 0 0] [ 0 0 14 0] [ 0 0 0 21]] (4, 4)
- 引数の値が対角成分、それ以外が0の対角行列を作成
- 形状は(4,4)の正方行列になる
- 引数は1次元ndarray(Numpy配列)の他、リストやタプルでも対角行列を作成できる
