3

私はデータ マイニングの研究を行っており、多くの場合、SQLite データベース、CSV ファイル、pickle ファイルなどから大規模なデータセットをロードする Python スクリプトを使用しています。開発プロセスでは、スクリプトを頻繁に変更する必要があり、データを待つのに 20 秒から 30 秒かかることに気付きます。ロードします。

データ ストリームの読み込み (SQLite データベースなどから) がうまくいく場合もありますが、すべての状況でうまくいくわけではありません。

これまでの私の最善の解決策は、最終的なスクリプトに満足するまでデータをサブサンプリングすることです。より良いソリューション/設計プラクティスを持っている人はいますか?

私の「理想的な」解決策は、Python デバッガー (pdb) を巧みに使用して、データがメモリに読み込まれたままになり、スクリプトを編集して、特定のポイントから再開できるようにすることです。

4

3 に答える 3

3

これを行う 1 つの方法は、読み込みスクリプトと操作スクリプトを別々のファイル X と Y に保持し、X.py読み取り済みにすることです。

import Y
data = Y.load()
.... your code ....

をコーディングするときはX.py、この部分をファイルから省略し、対話型シェルで手動で実行します。次に、シェルで変更X.pyして実行し、コードをテストできます。import X

于 2013-01-16T23:34:06.020 に答える
0

選択、オブジェクト リレーショナル変換を実行し、データをローカル ファイルにピクルするスクリプトを記述します。開発スクリプトは、データを unpickle して続行することから始まります。

データが物理 RAM よりも大幅に小さい場合は、2 つのプロセス間で共有されるファイルをメモリ マップし、ピクルされたデータをメモリに書き込むことができます。

于 2013-01-16T23:35:24.713 に答える