申请不一致np.梯度功能

2024-05-23 17:02:05 发布

您现在位置:Python中文网/ 问答频道 /正文

以前我一直在手工计算一组点之间的梯度。我碰巧看到在纽比图书馆里有一个np.梯度功能。在

兴奋的是,我在我的本地机器上试了一下,结果如下:

dataframe['Scrubber_Gradient_20m_mean'] = np.gradient(dataframe['ScrubberLevel'].rolling(center=False,window=2).mean())

这返回了滚动梯度值,这正是我所追求的。但是,我现在已经将我的一些代码移到了Spyder环境中的AWS部署中,该环境的numpy版本与我的本地机器相同,尽管代码是相同的,但是突然抛出了一个错误:

^{pr2}$

Scrub Gradient Error Message

然而,对我来说没有意义的是,当我在函数的外部运行代码时,只要在控制台中运行,计算就可以正常工作。这个数组不是“太小”,至少从我所能看到的是这样。在

No Error

我不明白为什么会这样。有人会对这种潜在的不一致行为有任何理由吗?在

到目前为止,我尝试了以下方法:

  1. 检查两个AWS上的Python Version/Numpy版本是否相同 服务器和本地计算机
  2. 确认两个数据集在函数内部/外部都相同
  3. 检查梯度函数内部函数/外部函数

我的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

现在,当我在AWS Spyder的控制台中运行这个时,没有如下所示的问题。 Screen when running code in AWS Spyder

但是,当我尝试通过我的函数运行这个函数时,我得到以下结果: enter image description here


Tags: 函数代码机器awsfalsedataframenpwindow