以前我一直在手工计算一组点之间的梯度。我碰巧看到在纽比图书馆里有一个np.梯度功能。在
兴奋的是,我在我的本地机器上试了一下,结果如下:
dataframe['Scrubber_Gradient_20m_mean'] = np.gradient(dataframe['ScrubberLevel'].rolling(center=False,window=2).mean())
这返回了滚动梯度值,这正是我所追求的。但是,我现在已经将我的一些代码移到了Spyder环境中的AWS部署中,该环境的numpy版本与我的本地机器相同,尽管代码是相同的,但是突然抛出了一个错误:
^{pr2}$然而,对我来说没有意义的是,当我在函数的外部运行代码时,只要在控制台中运行,计算就可以正常工作。这个数组不是“太小”,至少从我所能看到的是这样。在
我不明白为什么会这样。有人会对这种潜在的不一致行为有任何理由吗?在
到目前为止,我尝试了以下方法:
我的numpy版本是:本地机器和AWS服务器上的1.15.1。在
我附加了一个虚拟数据的快照,这样就可以很有希望地复制它。请使用scruberlevel列。Link to Data
这是我在本地计算机上运行的代码:
df_condabri_central_T1['Scrubber_Gradient_hour_mean'] = np.gradient(df_condabri_central_T1['ScrubberLevel'].rolling(center=False,window=6).mean())
这是我在AWS Spyder环境中使用的函数中运行的代码:
def feature_eng(dataframe):
#There are other features but for the sake of my problem I have restricted it to this variable
dataframe['ScrubberLevel'] = np.gradient(dataframe['ScrubberLevel'].rolling(center=False,window=2).mean())
return dataframe
目前没有回答
相关问题 更多 >
编程相关推荐