パンダのメモ
答えて
ここに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. backsapceのメモ帳トリック
- 6. HTMLヘルパーアプリケーションのメモ帳++
- 7. Javaのメモ帳クラス
- 8. PHPDocメモ帳++のコメント?
- 9. メモ化リストOCamlの
- 10. メモ型の乗算
- 11. メモ帳++ - ハイライトカスタムキーワード
- 12. メモIO機能?
- 13. メモ帳++ワークスペースリフレッシュ?
- 14. メモ帳++とMySQL
- 15. メモ帳++コードスニペット
- 16. メモ帳要素
- 17. メモ帳++ファイルスタイル
- 18. メモ帳++ + fpcコンパイラ
- 19. メモ帳++質問
- 20. メモ帳++列エディタ
- 21. スレッドセーフなメモ化
- 22. Apache POIでのスライドのメモ
- 23. CUMSUMパンダ - Pythonのパンダ
- 24. メモ帳++下線タグ
- 25. c# - 各メモ行用
- 26. メモ帳++オープンダイアログ奇妙
- 27. Windows 7付箋メモ
- 28. メモ付きのPythonビルドグラフ
- 29. メモ帳++タブの設定
- 30. メモ帳のVisual Studioスタックトレース++
'' compute(gendata()) 'を呼び出すとどうなりますか?実際にキャッシュからDataFrameをロードしていますか? – Yariv
''もし、 '' __hash__''を ' gendata() ''が別のプロセスで計算された場合はyesとなります – luispedro
'jug'ではなく' python'コマンドでjugを実行する方法はありますか? – Light