パンダのメモ
答えて
ここにjugの作者:jugはうまくいきます。私は次のことを試してみました、それが動作します:
from jug import TaskGenerator
import pandas as pd
import numpy as np
@TaskGenerator
def gendata():
return pd.DataFrame(np.arange(343440).reshape((10,-1)))
@TaskGenerator
def compute(x):
return x.mean()
y = compute(gendata())
それはその場でそれを圧縮が、(それだけDataFrame
のために内部pickle
を使用してそれができるほど効率的ではないので、それは面で恐ろしいではありませんメモリ使用量はそれよりも少し遅い)。
私は水差しは現在、numpyの配列の場合と同様に、特殊なケースとして、これらを節約変化にオープンになります:https://github.com/luispedro/jug/blob/master/jug/backends/file_store.py#L102
私はこの基本的なメモデコレータ、memoized
を使用します。 http://wiki.python.org/moin/PythonDecoratorLibrary#Memoize
DataFramesはハッシュ可能なので、正常に動作するはずです。ここに例があります。
In [2]: func = lambda df: df.apply(np.fft.fft)
In [3]: memoized_func = memoized(func)
In [4]: df = DataFrame(np.random.randn(1000, 1000))
In [5]: %timeit func(df)
10 loops, best of 3: 124 ms per loop
In [9]: %timeit memoized_func(df)
1000000 loops, best of 3: 1.46 us per loop
私によく見えます。
感謝。 「DataFramesはハッシュ可能です」とはどういう意味ですか? 'hash(pd.DataFrame([1,2,3]))'は、2回呼び出すと別の値を返します。 – Yariv
memoizedのコードは、データをキャッシュしようとする前にcollections.Hashable()をチェックします。しかし、あなたのコメントは、これが意図したとおりに機能するかどうか再考させています。 –
DataFrameはこのケースではおそらく起きるはずですが、私はgithubにprを載せます –
- 1. メモ帳/メモ帳++列の表示書式
- 2. パンダ:`
- 3. パンダ:
- 4. パンダ
- 5. メモ型の乗算
- 6. PHPDocメモ帳++のコメント?
- 7. HTMLヘルパーアプリケーションのメモ帳++
- 8. メモ帳++とMySQL
- 9. メモIO機能?
- 10. メモ帳++ワークスペースリフレッシュ?
- 11. メモ帳++質問
- 12. メモ帳++ + fpcコンパイラ
- 13. メモ帳++コードスニペット
- 14. メモ帳++ - ハイライトカスタムキーワード
- 15. スレッドセーフなメモ化
- 16. パンダ3Dのインポートモジュールエラー
- 17. パンダのサブプロット
- 18. パンダのリサンプルオプション
- 19. パネルデータのウェイト - パンダ
- 20. パンダのデータフレーム
- 21. パンダのデータフレームマージ
- 22. パンダ:インプットNaNの
- 23. パンダ:データフレームのサンプリング
- 24. はパンダのデータフレーム
- 25. パンダDATAFRAME
- 26. パンダstr.replace
- 27. パンダ:ダミー
- 28. パンダ:列
- 29. パンダのアイテムカテゴリのバーポット
- 30. パンダのデータフレームマルチインデックスのサブインデックス
'' compute(gendata()) 'を呼び出すとどうなりますか?実際にキャッシュからDataFrameをロードしていますか? – Yariv
''もし、 '' __hash__''を ' gendata() ''が別のプロセスで計算された場合はyesとなります – luispedro
'jug'ではなく' python'コマンドでjugを実行する方法はありますか? – Light