以下のコードを、私が望むもの(クリギングメソッドの一部です)とまったく同じようにしています。しかし、問題はそれが遅すぎるということです.forループをnumpyにプッシュするオプションがあるかどうかを知りたいのですが? numpy.sumを押し出してそこの軸引数を使用すると、速度は少し上がりますが、明らかにそれがボトルネックではありません。私はforloopを押し下げることができる方法上の任意のアイデアは、それをスピードアップするためにnumpyのために、あるいは他の方法は、それをスピードアップするために?)forループをnumpyにプッシュする方法
# n = 2116
print GRZVV.shape # (16309, 2116)
print GinvVV.shape # (2117, 2117)
VVg = numpy.empty((GRZVV.shape[0]))
for k in xrange(GRZVV.shape[0]):
GRVV = numpy.empty((n+1, 1))
GRVV[n, 0] = 1
GRVV[:n, 0] = GRZVV[k, :]
EVV = numpy.array(GinvVV * GRVV) # GinvVV is numpy.matrix
VVg[k] = numpy.sum(EVV[:n, 0] * VV)
は私がいくつかのもの
をクリアするndarrays n列の行列の次元を掲載しました編集:VVの形状あなたは基本的にベクトルのすべての要素を付加し、GinvVV
でそれを乗算する、末尾に1を追加し、GRZVV
の各行を取っている2116
何形状は ' VV? –
'VV.shape ==(16309、)'ならば、 '(n、)'という形をした 'EVV [:n、0]'によってどのようにmulitplyできますか? – askewchan
ループの最後の行に 'EVV [:n、0] * VV [k]'があるはずです。これは@ Jaimeの答えが想定しているようです。 – askewchan