0
A
答えて
0
これにはfunctools.lru_cache
を使用できます。しかし、self
の計算だけをキャッシュしていて、その関数が引数を使用していない場合、それは過剰です。次に、あなたの計算は次のようになり
@reify
def weighted_returns(self):
# calculate the returns using self normally
return returns
:
むしろ、私はピラミッドから怠惰reify
デコレータ盗みたい:
class reify(object):
def __init__(self, wrapped):
self.wrapped = wrapped
update_wrapper(self, wrapped)
def __get__(self, inst, objtype=None):
if inst is None:
return self
val = self.wrapped(inst)
setattr(inst, self.wrapped.__name__, val)
return val
をそしてweighted_returns
上でそれを使用し、遅延して計算属性にそれを回します
self.weighted_returns/self.weighted_returns.std() * np.sqrt(252)
(paren )。
functools.lru_cache(maxsize=None)
は、プログラムを強制終了するまでサイズが大きくなる無制限の辞書を保持しますが、reify
デコレータは、計算結果をインスタンス自体にキャッシュします。インスタンスがガベージコレクトされている場合は、そのキャッシュされた加重が返されます。
関連する問題
- 1. LRUキャッシュのリフレッシュ
- 2. Erlang LRUキャッシュ
- 3. SimplescalarキャッシュLRU実装
- 4. LRUキャッシュのSQL/HQL DELETEステートメント?
- 5. 並行LRUキャッシュの実装
- 6. LRUキャッシュの同時バージョン
- 7. JavascriptでのLRUキャッシュ実装
- 8. Rust RAM限定LRUキャッシュ?
- 9. ディスクのキャッシュ操作
- 10. Python LRUを使用したサイズベースのキャッシュにOrderedDictを使用する
- 11. JavaのString PoolはLRUキャッシュのように動作しますか?
- 12. 削除前にJava LRUキャッシュの最長取得
- 13. Python swf操作
- 14. Pythonオーバーロード操作
- 15. テキストファイルアート操作Python
- 16. Redis maxmemory-policy:volatile-lruとallkeys-lruのパフォーマンス
- 17. リストに<T>キャッシュ(セキュリティ操作)
- 18. Python CSV操作パス
- 19. Pythonでのファイル操作
- 20. Python(2.7)クローズファイルエラーの操作
- 21. Python CSV操作スクリプトのUnicodeEncodeError
- 22. PythonでのCSV操作3
- 23. Pythonでの数式操作
- 24. Pythonのビット配列操作
- 25. Pythonでの辞書操作
- 26. Pythonの表記や操作 "**"
- 27. Python画像ファイルの操作
- 28. Pythonの辞書データ操作
- 29. Python TKinter複数の操作
- 30. Pythonの文字列操作
ここであなたが何を求めているのか分かりません。あなたは 'lru_cache'が何をしているのか知っていますか?もしそうなら、あなたは何について混乱していますか? –
なぜlru_cacheをこれに使用していて、なぜ計算をインスタンス自体にキャッシュしないのですか? –
なぜ2回呼び出されるべきかわかりません。同じ行にありますが、呼び出しは厳密な順序で評価されます。 – janbrohl