numpy で行列のすべての行または列にベクトルを追加する高速な方法はありますか。
最近、私はベクトルを行列のサイズに合わせてタイル張りしていますが、これは多くのメモリを使用する可能性があります。例えば
mat=np.arange(15)
mat.shape=(5,3)
vec=np.ones(3)
mat+=np.tile(vec, (5,1))
私が考えることができる他の方法は、python ループを使用することですが、ループは遅いです:
for i in xrange(len(mat)):
mat[i,:]+=vec
C拡張に頼らずにnumpyでこれを行う簡単な方法はありますか?
ブロードキャストのより柔軟なバージョンのように、ベクトルを仮想的に並べて表示できると便利です。または、操作を行単位または列単位で反復できるようにすることもできます。これは、一部の ufunc メソッドでほぼ実行できる場合があります。