シリーズのログを取得するための小さな関数を作成しました。
def get_log_returns(series):
logs = numpy.log(series.astype('float64') / series.astype('float64').shift(1))
return logs
ここで、「合理的な」ログのみを含めるようにしたいと思います。where
無限のログを除外するために使用できることを知っています:
def get_log_returns(series):
logs = numpy.log(series.astype('float64') / series.astype('float64').shift(1))
return logs.where(logs < numpy.inf)
しかし、負のログを除外したい場合はどうすればよいでしょうか? 私はこのようなものがうまくいくことを望んでいました:
def get_log_returns(series):
logs = numpy.log(series.astype('float64') / series.astype('float64').shift(1))
return logs.where((logs < numpy.inf) and (logs > 0))
しかし、これは私に
ValueError: The truth value of an array with more than one element is ambiguous.
Use a.any() or a.all()
これを行う方法はありますか?