亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

運行相同的代碼但使用兩個不同的數據集(輸入)

運行相同的代碼但使用兩個不同的數據集(輸入)

慕虎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 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號