Python Numpy(2)行列演算
Sponsored Links
皆さんこんにちは
お元気ですか?私はサンプルコード実行して死にそうです。
さて、本日はPython Numpyについて
今日は、行列周りのことをやります!
How to Use
行列演算
通常の四則演算です。
>>> import numpy as np >>> a = np.array([[2,3,4],[5,6,7],[3,4,5]]) >>> b = np.array([[22,32,43],[51,61,72],[20,10,8]]) >>> a + b array([[24, 35, 47], [56, 67, 79], [23, 14, 13]]) >>> a - b array([[-20, -29, -39], [-46, -55, -65], [-17, -6, -3]]) >>> a * b array([[ 44, 96, 172], [255, 366, 504], [ 60, 40, 40]]) >>> a / b array([[0, 0, 0], [0, 0, 0], [0, 0, 0]]) >>> b / a array([[11, 10, 10], [10, 10, 10], [ 6, 2, 1]]) >>> 20 * b #定数倍 array([[ 440, 640, 860], [1020, 1220, 1440], [ 400, 200, 160]]) >>> b / 3 #定数で割る array([[ 7, 10, 14], [17, 20, 24], [ 6, 3, 2]]) >>> np.dot(a,b) # 内積 array([[277, 287, 334], [556, 596, 703], [370, 390, 457]]) >>> np.cross(a,b) #外積 array([[ 1, 2, -2], [ 5, -3, -1], [-18, 76, -50]]) >>> np.zeros((3,3)) #0ばかりの行列を生成する。 array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])
行列式、逆行列など
>>> np.linalg.inv(b) #逆行列 array([[ 0.08888889, -0.06666667, 0.12222222], [-0.3954023 , 0.26206897, -0.23333333], [ 0.27203065, -0.16091954, 0.11111111]]) >>> np.linalg.det(b) #行列式 -2610.0000000000014 >>> b.T #転置行列 array([[22, 51, 20], [32, 61, 10], [43, 72, 8]]) >>>np.diag(a) #対角行列 array([2, 6, 5])
後は頑張って数式に落とし込めば大抵のことはできます。