标签 IPython 下的文章

Jupyter 笔记本将 IPython shell 提升到一个新的高度。

 title=

Jupyter 项目最初是以 IPython 和 IPython 笔记本的形式出现的。它最初是一个专门针对 Python 的交互式 shell 和笔记本环境,后来扩展为不分语言的环境,支持 Julia、Python 和 R 以及其他任何语言。

 title=

IPython 是一个 Python shell,类似于你在命令行输入 python 或者 python3 时看到的,但它更聪明、更有用。如果你曾经在 Python shell 中输入过多行命令,并且想重复它,你就会理解每次都要一行一行地滚动浏览历史记录的挫败感。有了 IPython,你可以一次滚动浏览整个块,同时还可以逐行浏览和编辑这些块的部分内容。

 title=

它具有自动补全,并提供上下文感知的建议:

 title=

它默认会整理输出:

 title=

它甚至允许你运行 shell 命令:

 title=

它还提供了一些有用的功能,比如将 ? 添加到对象中,作为运行 help() 的快捷方式,而不会破坏你的流程:

 title=

如果你使用的是虚拟环境(参见我关于 virtualenvwrapper 的帖子),可以在环境中用 pip 安装:

pip install ipython

要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用 apt

sudo apt install ipython3

或使用 pip

sudo pip3 install ipython

Jupyter 笔记本

Jupyter 笔记本将 IPython shell 提升到了一个新的高度。首先,它们是基于浏览器的,而不是基于终端的。要开始使用,请安装 jupyter

如果你使用的是虚拟环境,请在环境中使用 pip 进行安装:

pip install jupyter

要在全系统范围内安装,你可以在 Debian、Ubuntu 或树莓派上使用 apt

sudo apt install jupyter-notebook

或使用 pip

sudo pip3 install jupyter

启动笔记本:

jupyter notebook

这将在你的浏览器中打开:

 title=

你可以使用 “New” 下拉菜单创建一个新的 Python 3 笔记本:

 title=

现在你可以在 In[ ] 字段中编写和执行命令。使用 Enter 在代码块中换行,使用 Shift+Enter 来执行:

 title=

你可以编辑和重新运行代码块,你可以重新排序、删除,复制/粘贴,等等。你可以以任何顺序运行代码块,但是要注意的是,任何创建的变量的作用域都将根据执行的时间而不是它们在笔记本中出现的顺序。你可以在 “Kernel” 菜单中重启并清除输出或重启并运行所有的代码块。

使用 print 函数每次都会输出。但是如果你有一条没有分配的语句,或者最后一条语句没有分配,那么它总是会输出:

 title=

你甚至可以把 InOut 作为可索引对象:

 title=

所有的 IPython 功能都可以使用,而且通常也会表现得更漂亮一些:

 title=

你甚至可以使用 Matplotlib 进行内联绘图:

 title=

最后,你可以保存你的笔记本,并将其包含在 Git 仓库中,如果你将其推送到 GitHub,它们将作为已完成的笔记本被渲染:输出、图形和所有一切(如 本例):

 title=


本文原载于 Ben Nuttall 的 Tooling Tuesday 博客,经许可后重用。


via: https://opensource.com/article/21/3/ipython-shell-jupyter-notebooks

作者:Ben Nuttall 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过 Jupyter 使用实时代码、方程式和可视化及文本创建交互式的共享笔记本。

自从有了纸莎草纸以来,出版人们一直在努力以吸引读者的方式来格式化数据。尤其是在数学、科学、和编程领域,设计良好的图表、插图和方程式可以成为帮助人们理解技术信息的关键。

Jupyter Notebook 通过重新构想我们如何制作教学文本来解决这个问题。Jupyter (我在 2017 年 10 月在 All Things Open 上首次了解到)是一款开源应用程序,它使用户能够创建包含实时代码、方程式、可视化和文本的交互式共享笔记本。

Jupyter 从 IPython 项目发展而来,它是个具有交互式 shell 和基于浏览器的笔记本,支持代码、文本和数学表达式。Jupyter 支持超过 40 种编程语言,包括 Python、R 和 Julia,其代码可以导出为 HTML、LaTeX、PDF、图像和视频,或者作为 IPyhton 笔记本与其他用户共享。

一个有趣的事实是:“Jupyter” 是 “Julia、Python 和 R” 的缩写。

根据 Jupyter 项目网站介绍,它的一些用途包括“数据清理和转换,数值模拟,统计建模,数据可视化,机器学习等等”。科学机构正在使用 Jupyter Notebooks 来解释研究结果。代码可以来自实际数据,可以调整和重新调整以可视化成不同的结果和情景。通过这种方式,Jupyter Notebooks 变成了生动的文本和报告。

安装并开始 Jupyter

Jupyter 软件是开源的,其授权于修改过的 BSD 许可证,它可以安装在 Linux、MacOS 或 Windows 上。有很多种方法可以安装 Jupyter;我在 Linux 和 MacOS 上试过 PIP 和 Anaconda 安装方式。PIP 安装要求你的计算机上已经安装了 Python;Jupyter 推荐 Python 3。

由于 Python 3 已经安装在我的电脑上,我通过在终端(在 Linux 或 Mac 上)运行以下命令来安装 Jupyter:

$ python3 -m pip install --upgrade pip
$ python3 -m pip install jupyter

在终端提示符输入以下命令立即启动应用程序:

$ jupyter notebook

很快,我的浏览器打开并显示了我在 http://localhost:8888 的 Jupyter Notebook 服务器。(支持的浏览器有 Google Chrome、Firefox 和 Safari)

在右上角有一个标有 “New” 的下拉菜单,它使我能够根据自己的指示和代码快速创建新的笔记本。请注意,我的新笔记本默认为 Python 3,这是我目前的环境。

一个带有一些默认值的新笔记本,它可以被改变(包括笔记本的名字),已打开。

笔记本有两种不同的模式:“命令模式”和“编辑模式”。命令模式允许你添加或删除单元格。你可以通过按下 Escape 键进入命令模式,按 Enter 键或单击单元格进入编辑模式。

单元格周围的绿色高亮显示你处于编辑模式,蓝色高亮显示你处于命令模式。以下笔记本处于命令模式并准备好执行单元中的 Python 代码。注意,我已将笔记本的名称更改为 “First Notebook”。

使用 Jupyter

Jupyter Notebooks 的强大之处在于除了能够输入代码之外,你还可以用 Markdown 添加叙述性和解释性文本。我想添加一个标题,所以我在代码上面添加了一个单元格,并以 Markdown 输入了一个标题。当我按下 Ctrl+Enter 时,我的标题转换为 HTML。(LCTT 译注:或者可以按下 Run 按钮。)

我可以通过在命令前追加 ! 来添加 Bash 命令或脚本的输出。

我也可以利用 IPython 的 line magic 和 cell magic 命令。你可以通过在代码单元内附加 %%% 符号来列出魔术命令。例如,%lsmagic 将输出所有可用于 Jupyter notebooks 的魔法命令。

这些魔术命令的例子包括 %pwd——它输出当前工作目录(例如 /Users/YourName)和 %ls——它列出当前工作目录中的所有文件和子目录。另一个神奇命令显示从笔记本中的 matplotlib 生成的图表。%%html 将该单元格中的任何内容呈现为 HTML,这对嵌入视频和链接很有用,还有 JavaScript 和 Bash 的单元魔术命令。

如果你需要更多关于使用 Jupyter Notebooks 和它的特性的信息,它的帮助部分是非常完整的。

人们用许多有趣的方式使用 Jupyter Notebooks;你可以在这个展示栏目里找到一些很好的例子。你如何使用 Jupyter 笔记本?请在下面的评论中分享你的想法。


via: https://opensource.com/article/18/3/getting-started-jupyter-notebooks

作者:Don Watkins 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Python是一个高级、通用、结构化且强大的开源编程语言,广泛用于各种编程工作。它拥有一个全动态类型系统和自动内存管理,与Scheme,Ruby,Perl和Tcl的十分相似,避免编译型语言的许多复杂地方和难以理解。Python于1991年由Guido van Rossum创造,然后逐渐成长,流行。

Python是一个非常实用,而且流行的计算机编程语言。使用一个如Python这样的解释型语言的好处之一就是,可以借助其交互的shell探索式地编程。你可以试着代码,而不必专门写一个脚本。但是Python shell也有一些局限性。基本来说,有许多很漂亮的Python shell可选择,都是在基础shell上扩展的。他们每一个都提供了一个极好的交互性的Python 体验。

bpython

对于Linux,BSD,OS X和Windows来说,bpython是一个不错的Python解释器的界面。

其想法是提供给用户所有的内置功能,很像现在的IDE(集成开发环境),但是是在一个简单,轻量级的包里,可以在终端窗口里面运行。

bpython并不追求创造任何新的或者开创性的东西。相反,它聚集了一些简洁的理念,关注于实用性和操作性。

功能包括:

  • 内置的语法高亮 - 使用Pygments排版你敲出的代码,并合理配色
  • 根据你的行为,显示自动补全的建议
  • 为任何Python函数列出所期望的参数 - 可以显示你调用的任何函数的参数列表
  • “Rewind”功能会调出内存里的最后一行代码并重新执行
  • 可以将你输入的代码送到pastebin
  • 可以将你输入的代码保存到一个文件
  • 自动缩进
  • 支持Python 3
  • 网址: www.bpython-interpreter.org
  • 开发者: Bob Farrell and contributors
  • 证书: MIT License
  • 版本号: 0.14.1

IPython

IPython是Python shell的一个交互加强版。她提供了一个丰富的工具集合,帮助你交互式地充分利用Python。

IPython可以用来取代标准的Python shell,也可以与标准Python科学和数值处理工具配合,用做一个科学计算(如Matlab或者Mathematical)的完整工作环境。她支持动态对象内省,有限的输入/输出提示,一个宏系统,会话日志,会话恢复,访问完整的系统外壳,详尽且彩色的追踪报告,自动圆括号补全,自动引号补全和可嵌入其他Python程序。

功能包括:

  • 强大的交互Shell(基于终端或者Qt)
  • 一个基于浏览器的记事本,支持代码,富文本,数学表达式,内置图表和其他富媒介。
  • 支持交互式的数据可视化和使用GUI工具箱
  • 灵活,嵌入式的解释器可以加载进你自己的项目里
  • 易于使用,高效的并行运算工具
  • 网址: ipython.org
  • 开发者: The IPython Development Team
  • 证书: BSD
  • 版本号: 3.1

DreamPie

DreamPie是一个为可靠性和趣味性设计的Python shell。

DreamPie可以用于任何Python解释器(Jython,IronPython,PyPy)。

功能包括:

  • 一个新式的交互shell:窗口被分成历史区域和代码区域,历史区域可以让你看到之前的命令及其输出,代码区域是里敲代码的地方。这样,你可以编辑任意多的代码,就好像在你最喜欢的编辑器里一样,并且适当时候可以执行它。你也可以从其他地方复制代码,编辑并马上运行它
  • “只复制代码”命令可以复制你想要的代码,以便你可以把它存入一个文件。代码已经用四个空格缩进进行格式化
  • 自动补全属性和文件名字
  • 自动显示函数参数和文档
  • 在结果历史中保存你最近的结果,备以后用
  • 可以自动折叠很长的输出,以便你可以专注于重要的地方
  • 保存会话的历史记录为一个HTML文件,备以后查询。你可以加载历史文件到DreamPie里,并且快速重复之前的命令。
  • 自动添加圆括号与可选的引号,当你在函数与方法后按下空格键。例如,键入execfile后按下空格会提示execfile("fn")
  • 支持交互的matplotlib绘图
  • 支持Python 2.5,Python 2.6,Python 3.1,Jython 2.5,IronPython 2.6和PyPy
  • 难以置信的快速反应
  • 网址: www.dreampie.org
  • 开发者: Noam Yorav-Raphael
  • 证书: GNU GPL v3
  • 版本号: 1.2.1

via: http://www.linuxlinks.com/article/20150523032756576/PythonShells.html

作者:Frazer Kline 译者:wi-cuckoo 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出