ここ Stack Overflow で同様の質問をいくつか見つけましたが、私の場合に固有のアドバイスが役立つと思います。
約 80,000 の実数値のリストをファイルに保存し、後で読み戻さなければなりません。
最初に試してみcPickle
ましたが、読書時間は魅力的ではありませんでした:
>>> stmt = """
with open('pickled-data.dat') as f:
data = cPickle.load(f)
"""
>>> timeit.timeit(stmt, 'import cPickle', number=1)
3.8195440769195557
cPickle
次に、数値をプレーンテキストとして保存すると、読み取りが高速になることがわかりました(多くのことを心配する必要があるため、理にかなっています)。
>>> stmt = """
data = []
with open('text-data.dat') as f:
for line in f:
data.append([float(x) for x in line.split()])
"""
>>> timeit.timeit(stmt, number=1)
1.712096929550171
これは良い改善ですが、他の言語で書かれたプログラムはファイルから同様のデータをかなり高速に読み取ることができるため、何らかの方法で最適化できると思います。
何か案は?