gpt4 book ai didi

python - Ipython 笔记本 : Elegant way of extracting method out?

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:51 25 4
gpt4 key购买 nike

随着我的笔记本越来越长,我想提取一些代码,这样笔记本会更容易阅读。

例如,这是我要从笔记本中提取的单元格/函数

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

我怎样才能有效地做到这一点?

我的想法:

  1. 很容易创建一个 my_helper.py 并将代码放在上面,然后 from my_helper import *
  2. 问题是,我可能会在方法中使用其他包(在这种情况下,np,即numpy),那么我需要重新-在 my_helper.py 中导入 numpy。它是否可以重复使用在ipython notebook中创建的环境,因此不需要重新导入?
  3. 如果我更改my_helper.py中的代码,我需要重新启动内核来加载更改(NameError: global name 'numpy' is not defined),这使得更改代码变得困难在该文件中。

最佳答案

您可以使用 %run magic command 运行它,而不是导入您的其他文件。 :

In [1]: %run -i my_helper.py

-i: run the file in IPython’s namespace instead of an empty one. This is useful if you are experimenting with code written in a text editor which depends on variables defined interactively.


我仍然会借此机会推荐将文件编写为适当的 python 模块并导入它。通过这种方式,您实际上开发了一个可在笔记本环境之外使用的代码库。您可以为其编写测试或将其发布到某处。

关于python - Ipython 笔记本 : Elegant way of extracting method out?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com