私はバイナリ値のファイルを持っています。私が探していますセクションでは、私は、このような大きさを計算するとファイルデータから一括計算を改善する方法
temp = array.array("f")
temp.fromfile(file, length *2)
mw_mvar = temp.tolist()
に値を読み取るMW1, MVAR1, MW2, MVAR2,...
のパターンで値を持つ4バイトの整数です。
mag = [0] * length
for x in range(0,length * 2, 2):
a = mw_mvar[x]
b = mw_mvar[x + 1]
mag[(x/2)] = sqrt(a*a + b*b)
計算(読まれていない)は、スクリプトの合計の長さを2倍にしています。私は実行時間に無視できる影響でこの計算を行うことができるFortran(pldはFortranで関数dllを呼び出すと言う)を最終的に呼び出すスクリプトを模倣しているので、(理論的に)これをより速く行う方法があることを知っています。
これは私が思いつくことができる最高です。改善のための提案?
私も試してみましたmath.pow()
、**.5
、**2
違いはありません。
「thermal_mva_results_base」などの用語の定義を省略すると、スニペットが完全ではありません。ファイル 'f'のあなたの説明も弱いです。ファイルの完全な例、ファイルの通常の長さのステートメント、完全なコードスニペットを入力してください。変数の型とデータはあなたの質問に関係します。 –
@RoryDaultonごめん、それはタイプミスでした。私はポストの名前を簡略化し、それを変更しなかった。 – blindguy