栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从Jupyter笔记本上的* .IPYNB文件执行* .PY文件?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从Jupyter笔记本上的* .IPYNB文件执行* .PY文件?

%run
魔术文档中,您可以找到:

-i 在IPython的名称空间而不是空名称空间中运行文件。如果您要试验用文本编辑器编写的代码,该代码取决于交互式定义的变量,则此功能非常有用。

因此,提供

-i
就可以了:

%run -i 'script.py'

做到这一点的“正确”方法

也许上面的命令正是您所需要的,但是在这个问题得到所有关注的基础上,我决定为不知道如何使用pythonic方式的用户增加几分钱。
上面的解决方案有点笨拙,并且使另一个文件中的代码令人困惑(此

x
变量从何而来?
f
函数是什么?)。

我想向您展示如何做到这一点,而不必一遍又一遍地执行另一个文件。
只需将其转换为具有自己功能和类的模块,然后从Jupyter笔记本电脑或控制台导入即可。这还具有使其易于重用的优势,并且jupyters
contextassantant可以帮助您自动完成,或者如果您编写了docstring,则可以显示docstring。
如果您要不断编辑另一个文件,那么将为

autoreload
您提供帮助。

您的示例如下所示:
script.py

import matplotlib.pyplot as pltdef myplot(f, x):    """    :param f: function to plot    :type f: callable    :param x: values for x    :type x: list or ndarray    Plots the function f(x).    """    # yes, you can pass functions around as if    # they were ordinary variables (they are)    plt.plot(x, f(x))    plt.xlabel("Eje $x$",fontsize=16)    plt.ylabel("$f(x)$",fontsize=16)    plt.title("Funcion $f(x)$")

Jupyter控制台

In [1]: import numpy as npIn [2]: %load_ext autoreloadIn [3]: %autoreload 1In [4]: %aimport scriptIn [5]: def f(x):      :     return np.exp(-x ** 2)      :      :In [6]: x = np.linspace(-1, 3, 100)In [7]: script.myplot(f, x)In [8]: ?script.myplotSignature: script.myplot(f, x)Docstring::param f: function to plot:type f: callable:param x: x values:type x: list or ndarrayFile:      [...]script.pyType:      function


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624400.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号