簡體   English   中英

在numpy中獲取日志返回的最有效方法是什么

[英]What is the most efficient way to get log returns in numpy

建立一系列日志返回的最快,最優雅的解決方案是什么?

問題主要在映射一個函數,該函數將第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發生在每一個值的對數ar ,和np.diff需要每個連續對值之間的差。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM