これらのシナリオで私が通常行うことは、重要なセルを関数としてラップし(それらをマージする必要はありません)、パラメーターのリストを反復処理してこれらの関数を呼び出す特定のマスターセルを用意することです。たとえば、これは私のノートブックの1つで「マスターセル」がどのように見えるかです。
import itertools
# parameters
P_peak_all = [100, 200]
idle_ratio_all = [0., 0.3, 0.6]
# iterate through these parameters and call the notebook's logic
for P_peak, idle_ratio in itertools.product(P_peak_all, idle_ratio_all):
print(P_peak, idle_ratio, P_peak*idle_ratio)
print('========================')
m_synth, m_synth_ns = build_synth_measurement(P_peak, idle_ratio)
compare_measurements(m_synth, m_synth_ns, "Peak pauser", "No scheduler", file_note="-%d-%d" % (P_peak, int(idle_ratio*100)))
ノートブック全体でデータをドラッグして(つまり、データを使用してセルの下部にある各関数を呼び出す)、個々のセルのデータをライブでテストすることができます。たとえば、一部のセルには次のように記載されている場合があります。
def square(x):
y = x**2
return y
square(x) # where x is your data running from the prior cells
これにより、ライブで実験しながら、マスターセルから汎用機能を呼び出すことができます。
関数を使用してノートブックをリファクタリングするのは追加の作業ですが、実際にはノートブックの読みやすさが向上することがわかりました。これは、長期間後にノートブックに戻ったときに役立ち、「適切な」スクリプトまたはモジュールに変換するのが簡単です。必要。