2015-05-06 30 views
1

構建一系列日誌回報的最快速和最優雅的解決方案是什麼?在numpy中獲取日誌回報的最有效方法是什麼

問題主要是圍繞映射一個函數,該函數將第i個和第(i + 1)個第th個元素作爲數組中每個元素的輸入。

的功能和簡單的數組我可以把數收益如下:

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內部的經驗。

回答

6
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需要每個連續對值之間的差。

相關問題