2016-05-24 9 views
2

ちょうどあなたがa+=bとしてa=a+bを書く方法などのnumpy行列乗算の簡素化 - 可能ですか?

a=np.dot(a,b) 

を簡素化する方法はありますか? Python3.5 +で

+2

ここにショートカットはありません... – mgilson

+0

'numpy.matrix'の周りにラッパークラスを作成し、' * '演算子をオーバーロードすることができますが、それは非常に混乱してしまい、間違いなく落ちます。 'np.dot'の何が問題なの? –

+1

さて、aとbはサイズが大きいので、ランタイムを保存しようとしています。 –

答えて

5

a,bは両方ともnp.arrayある)あなたは例えば、行列の乗算に@ operatorを使用することができます。:

import numpy as np 

a = np.random.randn(4, 10) 
b = np.random.randn(10, 5) 

c = a @ b 

これはc = np.matmul(a, b)を呼び出すことと同じです。インプレース行列の乗算(@=)はまだサポートされていません(ほとんどの場合、出力は通常最初の入力とは異なるため、意味をなさない)。

は、入力配列の1つ以上が(here参照)> 2つの寸法を有する場合np.matmul(及び@)はnp.dotに異なる挙動を示すことに注意します。

+0

残念ながら私は現在python 2.7を使用しています。しかし、あなたの返信に感謝します! –