0

私はスピードアップしたい科学的なpythonコードに取り組んでいます。特定の問題の 1 つは、書式設定された文字列を使用してテキスト ファイルに保存されている大量のデータを読み取ることです。split() と np.array() を使用したアプローチはうまく機能することがわかりましたが、FORTRAN で使用しているものと比較すると非常に遅いです。

残念ながら、私は C の専門家ではありません。以下に例を示します。

line ="  0.7711408E-01  0.7616138E-01  0.7521919E-01"
arr = np.array(line.split(),dtype=np.float)
print arr

これは機能しますが、大規模なデータ セットの場合は非常に遅くなります。このようなものはどうですか?

line ="  0.7711408E-01  0.7616138E-01  0.7521919E-01"
arr = np.zeros(3)
weave.inline("""sscanf(std::string(line).c_str(),"%f %f %f",arr);""",['line','arr'])
print arr
4

0 に答える 0