如何将数据集传递给函数,而不将其作为 Python 函数中的参数传递



我正在编写一个稍后将优化的函数,因此我无法将数据作为参数传递给该函数。 我对函数的参数仅限于我的优化过程的参数。

我需要在函数中的某个地方传递数据,我想知道如何使用 Global 变量或类来做到这一点。 目前我正在读取函数中的"数据",这是不正确的,因为每次更新数据时,我都必须更新函数。

如果我在我的脚本中编写函数,它可以正常工作,但我正在将其编写为稍后将导入到我的脚本中的模块。

这是我的函数:


def f (args):
data = pd.read_csv('/path.to.train.data')
do something....
return something

也许将你的函数拆分开来,这样你就有一个函数来返回xgbparams然后是一个函数来返回dtrain,然后是一个需要xgbparamsdtrain来计算的函数。

def1():
return xgbparams
def2():
return dtrain
def3(xgbparams, dtrain);
run the thing...

此外,通过拆分它,您将有更好的机会找出有效的方法。

否则,如果要创建一个类,可以使用selfself.dtrain传递数据。

class myclass(object):
import xgboost as xgb
def __init__(self, data):
self.dtrain = xgb.DMatrix(data)
etc..

当你初始化类时,你只需将其定义为输入,然后导入:

myclass('/train.buffer')

我最终编写了一个将数据传递给内部函数的嵌套函数。

def f (args, data):
"some operations on the data"
def g(args):
return something
other operations 
return something

相关内容

  • 没有找到相关文章

最新更新