TranslateProject/translated/tech/20210329 Why I love using the IPython shell and Jupyter notebooks.md
2021-04-08 08:45:45 +08:00

192 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[#]: subject: (Why I love using the IPython shell and Jupyter notebooks)
[#]: via: (https://opensource.com/article/21/3/ipython-shell-jupyter-notebooks)
[#]: author: (Ben Nuttall https://opensource.com/users/bennuttall)
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
为什么我喜欢使用 IPython shell 和 Jupyter Notebook
======
Jupyter Notebook 将IPython shell 提升到一个新的高度。
![Computer laptop in space][1]
Jupyter 项目最初是以 IPython 和 IPython Notebook 的形式出现的。它最初是一个专门针对 Python 的交互式 shell 和笔记本环境,后来扩展为不分语言的环境,支持 Julia、Python 和 R,以及其他任何语言。
![Jupyter][2]
Ben Nuttall, [CC BY-SA 4.0][3]
IPython 是一个 Python shell类似于你在命令行输入 `python` 或者 `python3` 时看到的,但它更聪明,更有用。如果你曾经在 Python shell 中输入过多行命令,并且想重复它,你就会理解每次都要一行一行地滚动浏览历史记录的挫败感。有了 IPython你可以一次滚动浏览整个块同时还可以逐行浏览和编辑这些块的部分内容。
![iPython][4]
Ben Nuttall, [CC BY-SA 4.0][3]
它具有自动补全,并提供上下文感知的建议:
![iPython offers suggestions][5]
Ben Nuttall, [CC BY-SA 4.0][3]
它默认漂亮输出:
![iPython pretty prints][6]
Ben Nuttall, [CC BY-SA 4.0][3]
它甚至允许你运行 shell 命令:
![IPython shell commands][7]
Ben Nuttall, [CC BY-SA 4.0][3]
它还提供了一些有用的功能,比如将 `?` 添加到对象中,作为运行 `help()` 的快捷方式,而不会破坏你的流程:
![IPython help][8]
Ben Nuttall, [CC BY-SA 4.0][3]
如果你使用的是虚拟环境(参见我关于 [virtualenvwrapper][9] 的帖子),在环境中用 pip 安装:
```
`pip install ipython`
```
要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用apt
```
`sudo apt install ipython3`
```
或使用 pip
```
`sudo pip3 install ipython`
```
### Jupyter Notebook
Jupyter Notebook 将 IPython shell 提升到了一个新的高度。首先,它们是基于浏览器的,而不是基于终端的。要开始使用,请安装 `jupyter`
如果你使用的是虚拟环境,请在环境中使用 pip 进行安装:
```
`pip install jupyter`
```
要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用 apt
```
`sudo apt install jupyter-notebook`
```
或使用 pip
```
`sudo pip3 install jupyter`
```
启动 Notebook
```
`jupyter notebook`
```
这将在你的浏览器中打开:
![Jupyter Notebook][10]
Ben Nuttall, [CC BY-SA 4.0][3]
你可以使用 **New** 下拉菜单创建一个新的 Python 3 Notebook
![Python 3 in Jupyter Notebook][11]
Ben Nuttall, [CC BY-SA 4.0][3]
现在你可以在 `In[ ]` 字段中编写和执行命令。使用**回车**在代码块中换行,使用 **Shift+回车**来执行:
![Executing commands in Jupyter][12]
Ben Nuttall, [CC BY-SA 4.0][3]
你可以编辑和重新运行代码块,你可以重新排序、删除,复制/粘贴,等等。你可以以任何顺序运行代码块,但是要注意的是,任何创建的变量的作用域都将根据执行的时间而不是它们在 Notebook 中出现的顺序。你可以在 **Kernel** 菜单中重启并清除输出或重启并运行所有的代码块。
使用 `print` 函数每次都会输出。但是如果你有一条没有分配的语句,或者最后一条语句没有分配,那么它总是会输出:
![Jupyter output][13]
Ben Nuttall, [CC BY-SA 4.0][3]
你甚至可以把 `In ``Out` 作为可索引对象:
![Jupyter output][14]
Ben Nuttall, [CC BY-SA 4.0][3]
All the IPython features are available and are often presented a little nicer, too:
所有的 IPython 功能都可以使用,而且通常也会表现得更漂亮一些:
![Jupyter supports IPython features][15]
Ben Nuttall, [CC BY-SA 4.0][3]
你甚至可以使用 [Matplotlib][16] 进行内联绘图:
![Graphing in Jupyter Notebook][17]
Ben Nuttall, [CC BY-SA 4.0][3]
最后,你可以保存您的笔记本,并将其包含在 Git 仓库中,如果你将其推送到 GitHub它们将作为已完成的 Notebook 被渲染:输出、图形和所有一切(如 [本例][18]
![Saving Notebook to GitHub][19]
Ben Nuttall, [CC BY-SA 4.0][3]
* * *
_本文原载于 Ben Nuttall 的 [Tooling Tuesday 博客][20]经许可后重用。_
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/3/ipython-shell-jupyter-notebooks
作者:[Ben Nuttall][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/bennuttall
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space)
[2]: https://opensource.com/sites/default/files/uploads/jupyterpreview.png (Jupyter)
[3]: https://creativecommons.org/licenses/by-sa/4.0/
[4]: https://opensource.com/sites/default/files/uploads/ipython-loop.png (iPython)
[5]: https://opensource.com/sites/default/files/uploads/ipython-suggest.png (iPython offers suggestions)
[6]: https://opensource.com/sites/default/files/uploads/ipython-pprint.png (iPython pretty prints)
[7]: https://opensource.com/sites/default/files/uploads/ipython-ls.png (IPython shell commands)
[8]: https://opensource.com/sites/default/files/uploads/ipython-help.png (IPython help)
[9]: https://opensource.com/article/21/2/python-virtualenvwrapper
[10]: https://opensource.com/sites/default/files/uploads/jupyter-notebook-1.png (Jupyter Notebook)
[11]: https://opensource.com/sites/default/files/uploads/jupyter-python-notebook.png (Python 3 in Jupyter Notebook)
[12]: https://opensource.com/sites/default/files/uploads/jupyter-loop.png (Executing commands in Jupyter)
[13]: https://opensource.com/sites/default/files/uploads/jupyter-cells.png (Jupyter output)
[14]: https://opensource.com/sites/default/files/uploads/jupyter-cells-2.png (Jupyter output)
[15]: https://opensource.com/sites/default/files/uploads/jupyter-help.png (Jupyter supports IPython features)
[16]: https://matplotlib.org/
[17]: https://opensource.com/sites/default/files/uploads/jupyter-graph.png (Graphing in Jupyter Notebook)
[18]: https://github.com/piwheels/stats/blob/master/2020.ipynb
[19]: https://opensource.com/sites/default/files/uploads/savenotebooks.png (Saving Notebook to GitHub)
[20]: https://tooling.bennuttall.com/the-ipython-shell-and-jupyter-notebooks/