繰り返しますが、大きなループに関する質問があります。
関数があるとします
limits
def limits(a,b):
*evaluate integral with upper and lower limits a and b*
return float result
A と B は、値 a と b を格納する単純な np.arrays です。ここで、A と B の長さがそれぞれ 300'000 であり、積分が対称であるため、積分を 300'000^2/2 回計算したいと考えています。
Python では、A と B の組み合わせを作成してから積分に入れるなど、いくつかの方法を試しitertools.combinations_with_replacement
ましたが、それには膨大な時間がかかり、メモリが完全に過負荷になります。たとえば、ループを別の言語に転送して、これを高速化する方法はありますか?
ループを実行したい
for i in range(len(A)):
for j in range(len(B)):
np.histogram(limits(A[i],B[j]))
limits
正方形に成長する追加の配列を格納しないために、戻り値のヒストグラムを作成することが望ましいと思います。
私が読んだことから、pythonはこの反復的な分析に最適な選択ではありません。
したがって、このループを Python 内の別の言語で評価することは合理的でしょうか? はいの場合、その方法。コードを転送する方法があることは知っていますが、これまで行ったことはありません。
ご協力いただきありがとうございます。