熊貓記憶
回答
壺的作者在這裏:壺工作正常。我剛剛試過以下,它的工作原理:
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())
這是效率不高,因爲它可能是因爲它只是使用pickle
內部的DataFrame
(雖然它壓縮它的飛行,所以在用詞不可怕的內存使用,只是比它可能慢)。
我將開放其保存這些作爲作爲壺目前確實爲numpy的陣列的特殊情況的變化:https://github.com/luispedro/jug/blob/master/jug/backends/file_store.py#L102
我使用這個基本的memoization裝飾,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]))'返回一個不同的值,如果你調用它兩次。 – Yariv 2013-03-16 17:43:04
在嘗試緩存數據之前,通過memoized檢查集合的可用代碼.Hashable()。但是你的評論讓我重新考慮這是否按預期工作。 – 2013-03-18 14:44:45
DataFrame可能應該在這種情況下提出,我會在github上提出 – 2013-06-07 21:26:54
- 1. C++與記憶
- 2. 記憶問題
- 3. 與記憶化
- 4. 記憶:Rememo
- 5. 熊貓:
- 6. 熊貓:
- 7. 熊貓
- 8. 熊貓
- 9. Python熊貓科學記數法Iconsistent
- 10. iPython筆記本熊貓不是陰謀
- 11. Python 3.x:Jupyter筆記本和熊貓
- 12. 大熊貓重新標記行到GROUPBY
- 13. 熊貓Pyplot多個標記,同一行
- 14. 熊貓 - str.contains()在大熊貓查詢
- 15. 熊貓羣大熊貓字典
- 16. 記憶化裝飾
- 17. 是留在記憶
- 18. 記憶化遞歸
- 19. savedInstanceState記憶影響
- 20. Haskell中的記憶?
- 21. 在記憶一步
- 22. 記憶IO功能?
- 23. 數據庫記憶?
- 24. PHP,我在記憶
- 25. listView滾動記憶
- 26. Javascript記憶說明?
- 27. 破記憶代碼
- 28. Java:自動記憶
- 29. C++中的記憶
- 30. 請教我記憶「斜槓」與「反斜槓」的好記憶
當你調用compute(gendata())時會發生什麼?它實際上是否從緩存加載DataFrame? – Yariv 2013-03-21 11:32:05
如果' gendata()''是在不同的進程中計算出來的,然後是的。 – luispedro 2013-03-21 11:35:25
有沒有辦法用'python'命令而不是'jug'運行jug? – Light 2017-02-13 07:35:48