随着我的笔记本电脑变得越来越长,我想要提取一些代码,这样笔记本就会更容易阅读。
例如,这是我要从笔记本中提取的cell/function
def R_square_of(MSE, kde_result):
# R square measure:
# https://en.wikipedia.org/wiki/Coefficient_of_determination
y_mean = np.mean(kde_result)
SS_tot = np.power(kde_result - y_mean,2)
SS_tot_avg = np.average(SS_tot)
SS_res_avg = MSE
R_square = 1 - SS_res_avg/SS_tot_avg
return R_square
我该如何有效地做到这一点?
我的想法:
my_helper.py
并将代码放在上面然后from my_helper import *
np
,即numpy
),然后我需要重新导入 numpy在my_helper.py
。它可以重用ipython notebook
中创建的环境,因此无需重新导入吗?my_helper.py
中的代码,我需要重新启动内核来加载更改(NameError: global name 'numpy' is not defined),这样就很难更改该文件中的代码答案 0 :(得分:3)
您可以使用%run magic command:
运行它,而不是导入其他文件In [1]: %run -i my_helper.py
-i
:在IPython的命名空间中运行该文件而不是空文件。如果您正在尝试使用文本编辑器编写的代码,这非常有用,该编辑器依赖于交互式定义的变量。
我仍然借此机会建议将文件编写为适当的python模块并导入它。这样,您实际上可以开发在笔记本环境之外可用的代码库。您可以为它编写测试或将其发布到某个地方。