私はベクトルの2つのリストを持っています。配列の2つのリストの外積を効率的に計算する方法
A = np.random.rand(100,2000)
B = np.random.rand(100,1000)
Iは第3など、Bの最初のエントリを持つAの最初のエントリ第2の外積を計算する必要があります。
ナイーブループ
outers = []
for a, b in zip(A,B):
outers.append(np.outer(a,b))
コンピューター上≈730 [ミリ秒](&&timeit
経由)を取ります。
最後にouters
は、100x1000の長さの2000x1000アレイのリストですが、これは正しいです。
とB[0]
とTHEN A[1] B[1]
を実際に最初に計算するように、このタスクを並列化する方が効率的な方法が必要です。
これをチェックしましたか?[質問](https://stackoverflow.com/questions/27809511/efficient-outer-product-in-python) –
'braodcasting'を使用してください:' A [:、:、None] * B [:、なし] '。 – Divakar
@Divakarいずれの方法も700msより高速ではありません。 ブロードキャストは750ms、einsumは900ms – Swift