import numpy as np
np arange
arange([start,] stop[, step,], dtype=None)
:arange
はrange
と同じように使えます。また、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]])
コメント