首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Jupyter Notebook或JupyterLab单元格中运行一行或选定的代码?

如何在Jupyter Notebook或JupyterLab单元格中运行一行或选定的代码?
EN

Stack Overflow用户
提问于 2019-06-05 20:50:17
回答 1查看 25.5K关注 0票数 32

在JupyterLab和Jupyter Notebook中,都可以使用ctrl + Enter执行单元

代码:

代码语言:javascript
运行
复制
print('line 1')
print('line 2')
print('line 3')

单元格和输出:

但是你怎么能只运行line 2呢?或者甚至是在不运行整个单元格的情况下选择单元格内的行?当然,你可以只插入一个单元格,或者选择一行,但这很快就会变得非常麻烦和混乱。那么有没有更好的方法来做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 20:51:49

更新的答案

自从我的第一个答案(我现在在1.1.4上)以来,JupyterLab已经有了一些更新,而且有人说JupyterLab 1.0 will eventually replace the classic Jupyter Notebook,这是我认为现在最好的方法,在未来会更好:

在JupyterLab中,使用带有指定键盘快捷键的Run > Run selected line or highlighted text在控制台中运行代码。

下面是使用键盘快捷键逐行运行这三个print语句时的结果:

下面是如何在Settings > Advanced Settings > Keyboard shortcuts中设置快捷方式

下面是您需要在Settings > Keyboard Shortcuts > User preferences >下添加的内容:

代码语言:javascript
运行
复制
{
    // List of Keyboard Shortcuts
    "shortcuts": [
        {
            "command": "notebook:run-in-console",
            "keys": [
                "F9"
            ],
            "selector": ".jp-Notebook.jp-mod-editMode"
        },
    ]
}

快捷方式甚至会显示在菜单中。我选择使用F9

旧版本的原始答案:

简短的回答:

Jupyter笔记本电脑:

  1. qtconsole
  2. scratchpad

JupyterLab:

  1. qtconsole
  2. Run > Run Selected Text or Current Line in Console,(可选)使用键盘快捷键

看看下面的细节,以及在答案最后的编辑中的一些特例

详细信息:

Jupyter笔记本选项1: qtconsole

插入新单元格的最灵活的替代方法是使用魔术函数打开IPython控制台

代码语言:javascript
运行
复制
%qtconsole

对于更花哨的控制台,您可以使用

代码语言:javascript
运行
复制
%qtconsole --style vim

由于Jupyter Notebook仍然是正在运行的内核,因此在此控制台中执行的行的结果也将可用于Jupyter Notebook。一个缺点是您必须将所需的行复制、粘贴或键入到控制台中。

[

Jupyter笔记本选项2: Scratchpad Notebook Extension

成功安装后,您可以使用ctrl + B启动Scratchpad

JupyterLab选项1: %qtconsole

工作方式与Notebook相同

JupyterLab选项2: Run > Run Selected Text or Current Line in Console

新版本的JupyterLab内置了一个类似于of控制台的选项,但可以说更优雅。现在,您可以将标记放在一行上,或突出显示所选内容,然后使用菜单选项Run > Run Selected Text or Current Line in Console

您仍然可以在IPython控制台中获得结果,但是您不必在%qtconsole中添加额外的行,而且在单元格中运行选定的行要容易得多:

通过将键盘快捷键指定给菜单选项Run > Run Selected Text or Current Line in Console,可以使操作变得更加简单,如下所示:

1 -转到Settings并选择Advanced Settings editor

2 -Keyboard shortcuts tab下,在ctrl+F中搜索run-in-console,以找到以下部分:

代码语言:javascript
运行
复制
// [missing schema title]
    // [missing schema description]
    "notebook:run-in-console": {
      "command": "notebook:run-in-console",
      "keys": [
        ""
      ],
      "selector": ".jp-Notebook.jp-mod-editMode",
      "title": "Run In Console",
      "category": "Notebook Cell Operations"
    }

3 -将该零件复制并粘贴到User Overrides下,然后在keys下键入所需的快捷方式,如下所示:

代码语言:javascript
运行
复制
[...]
"keys": [
  "F9"
],
[...]

4 -单击File下的Save All

5 -如果过程顺利,您将看到菜单选项发生了变化:

6 -您可能需要重新启动JupyterLab,但现在您可以使用所需的快捷方式轻松运行单行或选定行。

##EDIT:特殊情况

您的首选方法将取决于所讨论行的输出的性质。下面是一个使用plotly的示例。随着时间的推移,可能会添加更多的示例。

1. - plotly

绘图图形不会直接显示在Jupyter QtConsole (可能与this有关)中,但Jupyter Notebook中的Scratchpad和使用Run > Run Selected Text or Current Line in Console的Jupyterlab中的集成控制台都可以很好地处理绘图图形。

代码片段:

代码语言:javascript
运行
复制
from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot
import plotly.graph_objs as go
init_notebook_mode(connected=True)

trace0 = go.Scatter(
    x=[1, 2, 3, 4],
    y=[10, 15, 13, 17]
)

fig = go.Figure([trace0])
iplot(fig)

1.1 -绘图,带便签簿

1.2 -使用突出显示的行和键盘快捷键与JupyterLab console一起绘图:

票数 41
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56460834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档