Ale*_*ane 1 python performance dictionary numpy financial
构建一系列日志返回的最快和最优雅的解决方案是什么?
问题主要在于映射一个函数,该函数将第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:])])
Run Code Online (Sandbox Code Playgroud)
但是,我正在从单个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:])])
Run Code Online (Sandbox Code Playgroud)
相当于
logR = np.diff(np.log(ar))
Run Code Online (Sandbox Code Playgroud)
np.log获取每个值的日志ar,并np.diff获取每个连续值对之间的差异.
| 归档时间: |
|
| 查看次数: |
3956 次 |
| 最近记录: |