変数の生成方法 ダミー変数など

import numpy as np

np arange

  • arange([start,] stop[, step,], dtype=None)arangerangeと同じように使えます。また、rangeでは整数しか指定できませんでしたが、arangeは浮動小数点数も使えます。
# rangeのNumPy版
np_arange_9 = np.arange(9)
np_arange_9
array([0, 1, 2, 3, 4, 5, 6, 7, 8])

9とすると、0~8(9は含まない)になる

# start, stop, stepを指定
np_arange_292 = np.arange(2, 9, 2)
np_arange_292
array([2, 4, 6, 8])

startの2は含むようになる

# 型指定もできます
np_arange_292_float = np.arange(2, 9, 2, dtype=float)
np_arange_292_float
array([2., 4., 6., 8.])
# 浮動小数点数も使えます
np_arange_num7 = np.arange(2.5, 5.6, 0.5)
np_arange_num7
array([2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5]) 5.6にしてずらしている

end pointを含む場合にはlinspaceを使ったほうが簡単

linspace

linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None):作成する範囲と個数numが決まっている場合は、linspaceを使うと良いでしょう。なお、endpoint=Falseとするとstopを含みません。retstep=Trueでステップも返します

# 範囲(start, stop)と個数(num)を指定
np_linspace_num7 = np.linspace(2.5, 5.5, 7)
np_linspace_num7
array([2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5])

eye

対角線が全て1の単位行列は、numpy.eyeが使えます。対角行列とは、対角成分以外の要素が全て0の行列です。

# 3×3の単位行列(対角成分のみ1の行列)
np_eye_3 = np.eye(3)
np_eye_3
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])
# 3×4のような非正方行列も可能
np_eye_34 = np.eye(3, 4)
np_eye_34
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.]])

diag

任意の対角行列は、numpy.diagが使えます。

# 対角行列(対角成分以外が0の行列)
np_diag = np.diag([10, 11, 12])
np_diag

array([[10,  0,  0],
       [ 0, 11,  0],
       [ 0,  0, 12]])

コメント

タイトルとURLをコピーしました