为了账号安全,请及时绑定邮箱和手机立即绑定

运行相同的代码但使用两个不同的数据集(输入)

运行相同的代码但使用两个不同的数据集(输入)

慕虎7371278 2023-10-06 11:13:45
我在 JupyterLab 中有一段代码,其中包含分布在多个单元格中的多个函数。第一个函数生成一个数据集,该数据集将在其后的所有其他函数中使用。我要做的就是运行相同的代码两次,但修改其中一个函数。所以它看起来像这样:data_generating_function() # this function should only be ran once so it generates the same dataset for both trials function_1() # this is the function that is to be modified once, so there are two version of this functionfunction_2() # this function and all functions below it stay the same but should be ran twicefunction_3()function_4()function_5()所以我会运行data_generating_function()一次并生成数据集。然后我会运行一个版本function1()及其下面的所有函数,然后我会运行另一个版本function1()及其下面的所有其他函数。实施这个的好方法是什么?显然,我可以复制代码并仅更改一些函数名称,我也可以将其全部放入一个单元格中并创建一个 for 循环。然而,是否有更好的方法可以理想地保存多个细胞呢?谢谢
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您应该尽可能避免修改或直接迭代函数。在这种情况下,最好的办法是添加一个布尔参数来function1指定要运行的函数版本。它看起来像这样:


def function1(isFirstTime):

  if isFirstTime:

    # do stuff the first time

    pass

  else:

    # do stuff the second time

    pass

然后您可以迭代这些函数:


data_generating_function()

for b in (True, False):

  function1(b)

  function2()

  function3()

  # ...


查看完整回答
反对 回复 2023-10-06
?
隔江千里

TA贡献1906条经验 获得超10个赞

只需迭代第一个函数的两个选择:

data_generating_function() 
for func1 in (function1a, function1b):
    func1()
    function_2()
    function_3()
    function_4()
    function_5()


查看完整回答
反对 回复 2023-10-06
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

如果我误解了这个问题,我深表歉意,但你能不能执行以下操作:


单元格 1:


# define all functions

单元 2:


dataset = data_generating_function()

单元 3:


# Run version 1 of function 1 on dataset

result_1_1 = function_1_v1(dataset)

result_2_1 = function_2(result_1_1)

result_3_1 = function_3(result_2_1)

function_4(result_3_1)

单元 4:


# Run version 2 of function 1 on dataset

result_1_2 = function_1_v2(dataset)

result_2_2 = function_2(result_1_2)

result_3_2 = function_3(result_2_2)

function_4(result_3_2)

该解决方案假设:


您定义带有返回值的函数

传递结果并不“昂贵”

如果不是后者,您也可以将结果保留在文件中。


为了减少 function_1 中的代码重复,您可以添加一个在两个版本之间切换的参数。


查看完整回答
反对 回复 2023-10-06
  • 3 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信