jupyter和spider;Anaconda、Python、Jupyter、Pycharm、Spyder、conda、pip

转自https://www.jianshu.com/p/97fa4ed3edbc。自学使用,侵删。

Anaconda安装后,可以从菜单中看到它包含几个应用程序,其中Anaconda Navigator是这几个程序的导航入口。

1.Anaconda Navigator是什么?

Anaconda Navigator是Anaconda发行包中包含的桌面图形界面,可以用来方便地启动应用、方便的管理conda包、环境和频道,不需要使用命令行的命令。Navigator可以从Anaconda Cloud或本地Anaconda仓库中搜索包。提供了Windwos、maxOS和Linux版本。

Anaconda Navigator

2.通过Navigator可以启动那些应用?

Anaconda安装后,缺省的包含下列应用:

  • Jupyter Notebook
  • Orange App
  • QTConsole
  • Glueviz
  • Spyder
  • RStudio

3.如何使用Navigator运行代码?

最简单的方式就是运行Spyder. 从Navigator的Home页面,点击Spyder, 就可以启动它并写代码并运行它了。

Spyder

4.Jupyter Notebook介绍

文学编程

在介绍 Jupyter Notebook 之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Donald Knuth 提出的编程方法。传统的结构化编程,人们需要按计算机的逻辑顺序来编写代码;与此相反,文学编程则可以让人们按照自己的思维逻辑来开发程序。

简单来说,文学编程的读者不是机器,而是人。 我们从写出让机器读懂的代码,过渡到向人们解说如何让机器实现我们的想法,其中除了代码,更多的是叙述性的文字、图表等内容。这么一看,这不正是数据分析人员所需要的编码风格么?不仅要当好一个程序员,还得当好一个作家。那么 Jupyter Notebook 就是不可或缺的一款集编程和写作于一体的效率工具。

历史传承

也许说到 Jupyter 你会觉得陌生,但想必你或多或少听过鼎鼎大名的 IPython。其实Jupyter 脱胎于 IPython 项目,IPython 顾名思义,是专注于 Python 的项目,但随着项目发展壮大,已经不仅仅局限于 Python 这一种编程语言了。Jupyter 的名字就很好地释义了这一发展过程,它是 Julia、Python 以及 R 语言的组合,字形相近于木星(Jupiter),而且现在支持的语言也远超这三种了。

优点

以下列举了 Jupyter Notebook 的众多优点:

  • 极其适合数据分析。

想象一下如下混乱的场景:你在终端中运行程序,可视化结果却显示在另一个窗口中,包含函数和类的脚本存在其他文档中,更可恶的是你还需另外写一份说明文档来解释程序如何执行以及结果如何。此时 Jupyter Notebook 从天而降,将所有内容收归一处,你是不是顿觉灵台清明,思路更加清晰了呢?

  • 支持多语言。

也许你习惯使用 R 语言来做数据分析,或者是想用学术界常用的 MATLAB 和 Mathematica,这些都不成问题,只要安装相对应的核(kernel)即可。

  • 分享便捷。

支持以网页的形式分享,GitHub 中天然支持 Notebook 展示,也可以通过 nbviewer 分享你的文档。当然也支持导出成 HTML、Markdown 、PDF 等多种格式的文档。

  • 远程运行。

在任何地点都可以通过网络链接远程服务器来实现运算,这里给出一个远程运行的例子,可以体验一下 Jupyter Notebook。

  • 交互式展现。

不仅可以输出图片、视频、数学公式,甚至可以呈现一些互动的可视化内容,比如可以缩放的地图或者是可以旋转的三维模型。这就需要交互式插件(Interactive widgets)来支持,更多内容请参考这里。

运行

如果使用 Anaconda,可以在其 Navigator 图形界面中点击打开 Notebook。但是最快捷的方法还是在命令行中输入:

jupyter notebook

此时你的 Web 浏览器被自动打开,显示文件目录。通过点击右上角的 new 创建新文档。

jupyter notebook

而关闭 notebook 文档可以通过选择文件名前的复选框后,点击 Shutdown 按钮实现。如果要关闭整个服务,则在原来的终端中按 Control + C 两次。

界面

Notebook 文档是由一系列单元(Cell)构成,主要有两种形式的单元:

  • 代码单元:这里是你编写代码的地方,通过按 Shift + Enter 运行代码,其结果显示在本单元下方。代码单元左边有 In [1]: 这样的序列标记,方便人们查看代码的执行次序。

  • Markdown 单元:在这里对文本进行编辑,采用 markdown 的语法规范,可以设置文本格式、插入链接、图片甚至数学公式。同样使用 Shift + Enter 运行 markdown 单元来显示格式化的文本。

jupyter notebook edit

类似于 Linux 的 Vim 编辑器,在 notebook 中也有两种模式:

  • 编辑模式:编辑文本和代码。选中单元并按 Enter 键进入编辑模式,此时单元左侧显示绿色竖线。
  • 命令模式:用于执行键盘输入的快捷命令。通过 Esc 键进入命令模式,此时单元左侧显示蓝色竖线。

如果要使用快捷键,首先按 Esc 键进入命令模式,然后按相应的键实现对文档的操作。比如切换成代码单元(Y)或 markdown 单元(M),或者在本单元的下方增加一单元(B)。查看所有快捷命令可以按H。

尽管一开始需要花费一些学习成本,但熟练使用快捷键将大大提高工作效率。试想你在键盘上十指如飞时,如果还需要通过鼠标来操作文档,是不是很影响思考速度呢?

Jupyter Notebook 进阶功能

数学公式编辑

如果你曾做过严肃的学术研究,一定对 LaTeX 并不陌生,这简直是写科研论文的必备工具,不但能实现严格的文档排版,而且能编辑复杂的数学公式。在 Jupyter Notebook 的 markdown 单元中我们也可以使用 LaTeX 的语法来插入数学公式。

在文本行中插入数学公式,使用一对 $符号,比如质能方程 $E = mc^2$。如果要插入一个数学区块,则使用一对美元$符号。比如下面公式表示 z=x/y:

$ $ z = frac{x}{y} $ $

如何在 notebook 中使用 LaTeX,可进一步参考 A Primer on Using LaTeX in Jupyter Notebooks 这篇文章。

幻灯片制作

既然Jupyter Notebook 擅长展示数据分析的过程,除了通过网页形式分享外,当然也可以将其制作成幻灯片的形式。这里有一个幻灯片示例供参考,其制作风格简洁明晰。

那么如何用 Jupyter Notebook 制作幻灯片呢?首先在 notebook 的菜单栏选择 View > Cell Toolbar > Slideshow,这时在文档的每个单元右上角显示了 Slide Type 的选项。通过设置不同的类型,来控制幻灯片的格式。有如下5中类型:

  • Slide:主页面,通过按左右方向键进行切换。
  • Sub-Slide:副页面,通过按上下方向键进行切换。
  • Fragment:一开始是隐藏的,按空格键或方向键后显示,实现动态效果。
  • Skip:在幻灯片中不显示的单元。
  • Notes:作为演讲者的备忘笔记,也不在幻灯片中显示。

     

    jupyter notebook slide

当编写好了幻灯片形式的 notebook,如何来演示呢?这时需要使用 nbconvert:

jupyter nbconvert notebook.ipynb --to slides --post serve

在命令行中敲入上述代码后,浏览器会自动打开相应的幻灯片。

魔术关键字

魔术关键字(magic keywords),正如其名,是用于控制 notebook 的特殊的命令。它们运行在代码单元中,以 % 或者 %% 开头,前者控制一行,后者控制整个单元。

比如,要得到代码运行的时间,则可以使用 %timeit;如果要在文档中显示 matplotlib 包生成的图形,则使用 % matplotlib inline;如果要做代码调试,则使用 %pdb。但注意这些命令大多是在Python kernel 中适用的,其他 kernel 大多不适用。有许许多多的魔术关键字可以使用,更详细的清单请参考 Built-in magic commands 。



作者:鼓刀而歌
链接:https://www.jianshu.com/p/97fa4ed3edbc
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Anaconda、Python、Jupyter、Pycharm、Spyder、conda、pip傻傻分不清楚??
黑人问号脸.jpg

Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有不少发行版的Python,比如WinPython、Anaconda等,这些发行版将python和许多常用的package打包,方便pythoners直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。

先解释下conda、anaconda这些概念的差别。

Anaconda是一个用于科学计算的Python发行版,支持 Linux,Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

综上所述:Anaconda具有跨平台、包管理、环境管理的特点,因此很适合快速在新的机器上部署Python环境。

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。

conda的设计理念:conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。

安装Anaconda时,会发现有两个不同版本的Anaconda,例如分别对应Python 3.6和Python 3.7,两个版本的Anaconda其实除了这点区别外其他都一样。后面我们会看到,安装哪个版本并不本质,因为通过环境管理,我们可以很方便地切换运行时的Python版本。

Conda和pip通常被认为几乎完全相同。虽然这两个工具的某些功能重叠,但它们设计用于不同的目的。 Pip是Python Packaging Authority推荐的用于从Python Package Index安装包的工具。 Pip安装打包为wheels或源代码分发的Python软件。后者可能要求系统安装兼容的编译器和库。

Conda是跨平台的包和环境管理器,可以安装和管理来自Anaconda repository以 Anaconda Cloud的conda包。 Conda包是二进制文件,徐需要使用编译器来安装它们。另外,conda包不仅限于Python软件。它们还可能包含C或C ++库,R包或任何其他软件。

这是conda和pip之间的关键区别。 Pip安装Python包,而conda安装包可能包含用任何语言编写的软件的包。在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。而Conda可以直接安装Python包以及Python解释器。

另一个区别是conda能够创建可以包含不同版本的Python或其他软件包的隔离环境。在使用数据科学工具时,这非常有用,因为不同的工具可能包含冲突的要求,这些要求可能会阻止它们全部安装到单个环境中。 Pip没有内置的环境支持,而是依赖于virtualenv或venv 等其他工具来创建隔离环境。 pipenv,poetry和hatch wrap pip和virtualenv等工具提供了统一的方法来处理这些环境。

Pip和conda在如何实现环境中的依赖关系方面也有所不同。安装包时,pip会在递归的串行循环中安装依赖项。没有努力确保同时满足所有包的依赖性。如果较早安装的软件包与稍后安装的软件包具有不兼容的依赖性版本,则可能导致破坏的环境。conda使用可确保满足环境中安装的所有包的所有要求。此检查可能需要额外的时间,但有助于防止创建破坏的环境,前期关于依赖关系包的元数据是正确的。

考虑到conda和pip之间的相似性,有些人试图将这些工具结合起来创建数据科学环境也就不足为奇了。将pip与conda结合的主要原因是有些包只能通过pip安装。 Anaconda创酷提供超过1,500个软件包,包括最流行的数据科学,机器学习和AI框架。这些,以及包括conda-forge和bioconda在内的数据通过Anaconda云提供的数千个附加软件包,可以使用conda进行安装。尽管有大量的软件包,但与PyPI上提供的150,000多个软件包相比,它仍然很小。有时候需要的包没有conda包,但在PyPI上有,可以用pip安装。

最后:
与上面几个概念完全不同的是,PyCharm、Jupyter Notebook 和 Spyder 都是目前比较主流的的三种Python IDE(集成开发环境),类似于微软的Visual studio 201x辣! 微笑.jpg
————————————————
版权声明:本文为CSDN博主「戴高楽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Daliuvid/article/details/90640686

你可能感兴趣的:(python,python,anaconda,机器学习)