Pythonの各種乗:dot(),*,multiply()
4097 ワード
Pythonの各種乗:dot(),*,multiply() dot()dot()配列タイプまたはlistタイプにdot()が作用すると、2つの1次元配列が内積する.その他はマトリクス乗算(すなわちベクトル積、フォーク乗算)
dot()がマトリクスタイプに作用する場合(マトリクス規模にかかわらず)、2つのマトリクスはマトリクス乗のマトリクス要件を満たし、結果はマトリクス乗(すなわちベクトル積、フォーク乗)である. multiply()配列タイプ、マトリクスタイプ、listタイプに作用するにかかわらず、結果は数量積、点乗(すなわちマトリクス対応要素乗算)、ブロードキャスト現象 である.*配列タイプ(listタイプでは機能しない)に作用する場合は点乗 である.
マトリクスタイプに作用する場合はフォーク
-まとめ:データがマトリクスの場合dot()と*はフォークです.配列時にdot()次元は内積であり、2次元はフォーク乗であり、*は点乗である.Multiply()はずっと点乗でリストには使えません
(PS:初めてブログを書くのも、Python初心者なので、足りないところは教えてください)
In [2]:a = np.array([1,1,1])
In [3]:b = np.array([2,2,2])
In [4]:np.dot(a,b)
Out[4]: 6
In [5]:c = np.array([[3,3,3],[4,4,4]])
In [6]:d = np.array([[5],[5],[5]])
In [7]:np.dot(c,d)
Out[7]:
array([[45],
[60]])
dot()がマトリクスタイプに作用する場合(マトリクス規模にかかわらず)、2つのマトリクスはマトリクス乗のマトリクス要件を満たし、結果はマトリクス乗(すなわちベクトル積、フォーク乗)である.
In [8]:e = np.mat([[3,3,3],[4,4,4]])
In [9]:f = np.mat([[5],[5],[5]])
In [10]:np.dot(e,f)
Out[10]:
matrix([[45],
[60]])
In [11]:g = np.mat([1,1,1])
In [12]:h = np.mat([2,2,2])
In [13]:np.dot(g,h)
Out[13]:
In [14]:np.multiply(a,b)
Out[14]:array([2, 2, 2])
In [15]:np.multiply(b,c)
Out[15]:
array([[6, 6, 6],
[8, 8, 8]])
In [16]:a*b
Out[16]:array([2, 2, 2])
In [17]:[1,1,1]*[2,2,2]
Out[17]:
In [17]:c*d
Out[17]:
マトリクスタイプに作用する場合はフォーク
In [7]:e*f
Out[7]:
matrix([[45],
[60]])
-まとめ:データがマトリクスの場合dot()と*はフォークです.配列時にdot()次元は内積であり、2次元はフォーク乗であり、*は点乗である.Multiply()はずっと点乗でリストには使えません
(PS:初めてブログを書くのも、Python初心者なので、足りないところは教えてください)