2

実行に少し時間がかかる大きなコードがあります。ほとんどの時間を占める 2 つの行を突き止めましたが、それらを高速化する方法があるかどうか知りたいです。MWE は次のとおりです。

import numpy as np

def setup(k=2, m=100, n=300):
    return np.random.randn(k,m), np.random.randn(k,n),np.random.randn(k,m)
# make some random points and weights
a, b, w = setup()

# Weighted euclidean distance between arrays a and b.
wdiff = (a[np.newaxis,...] - b[np.newaxis,...].T) / w[np.newaxis,...]

# This is the set of operations that need a performance boost:
dist_1 = np.exp(-0.5*(wdiff*wdiff)) / w
dist_2 = np.array([i[0]*i[1] for i in dist_1])

私はこの質問から来ていますところで、ali_mがブロードキャストを適用することで多くの時間を節約した驚くべき答えを提案した配列内のポイント間の高速加重ユークリッド距離(少なくとも私はまったく何も知りません)そのようなものを適用できますかこれらの行で?

4

1 に答える 1