构建日志返回序列的最快且最优雅的解决方案是什么?
问题主要在于映射一个函数,该函数将第 i 个和第 (i+1) 个元素作为数组中每个元素的输入。
对于函数和简单数组,我可以定义日志返回,如下所示:
import numpy as np
ar = np.random.rand(10)
f_logR = lambda ri, rf: np.log(rf) - np.log(ri)
logR = np.asarray([f_logR(ar[i], rf) for i,rf in enumerate(ar[1:])])
但是,我正在从各个 numpy 元素构建一个列表,然后再次将其转换回 numpy 数组。
我还以相当粗暴的方式访问元素,因为我对生成器函数或 numpy 内部结构缺乏经验。
f_logR = lambda ri, rf: np.log(rf) - np.log(ri)
logR = np.asarray([f_logR(ar[i], rf) for i,rf in enumerate(ar[1:])])
相当于
logR = np.diff(np.log(ar))
np.log http://docs.scipy.org/doc/numpy/reference/generated/numpy.log.html取其中每个值的对数ar
, and np.diff http://docs.scipy.org/doc/numpy/reference/generated/numpy.diff.html取每对连续值之间的差值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)