读者们下午好,现将python数据分析随笔记录如下,接续-1。

2.8 IPython shell

IPython是在Python的基础上进一步develope,增加了许多种tool:

IPython shell:性能有了极大提升的Python终端,功能强大的交互式shell;

QtConsole:shell和GUI的结合体,实现在console而不是单独的窗口中显示图像;

IPython Notebook:集文本、可执行code、图像和公式的展现于一体的Web界面。

【PS:

以上为原文,ps的是笔者由自己的经验和从网络上得到的资讯:

1.终端(Terminal):一个程序,provide一个界面,让uer能够inpute命令和看到output的结果。可以理解为user与operating system进行交互的窗口。

2.shell: user与operating system进行交互的界面,允许user通过命令键入来control计算机的操作。通过shell,user可以执行命令、启动程序、管理文件和目录等。

coputer的世界里,通常有两种type的shell:

①命令行界面(CLI,Command-Line Interface):这是最常见的shell类型,通过键盘键入指令与computer进行交互,通常没有图形界面。

---例:Windows的命令提示字符(cmd)或PowerShell,Linux和macOS的Terminal。

②图形用户界面(GUI,Graphical User Interface):这类shell provide图形化的界面,user通过鼠标点击、拖拽等方式与OS交互,常见的如文件管理器。

---在GUI中,user通过窗口和图标进行operating,而不是键入命令。

3.终端与shell的关系:

terminal是一个process(表示程序,笔者之前似乎在之前一直使用这个单字表示程序),provide一个界面,让user能够input命令和看到命令output的结果。可以理解为user与OS进行交互的“窗口”;shell是通过terminal运行的process,它接收user键入的命令,并将命令传递给OS进行执行。

①例:在Linux或macOS中,打开Terminal就是打开了一个终端,在终端中,user可以启动bash或zsh等shell来键入命令(实际上系统是会默认启动bash这个shell的)。

---默认启动的shell的effect:接收和执行指令(接收user在终端中键入的命令,并将其传递给OS执行)、命令解释和执行(shell会将你输入的命令解释并执行。如果user输入的是python代码,shell会启动python解释器来执行code,当然,前提一定是输入过了python,启动了python交互式shell。等等)

②笔者这样讲不知道是否准确:Terminal更像是一个平台,在其中可以运行不同类型的shell。(但似乎也差不多,笔者provide一个方向,读者可以自行判决错对)

4.IPython就是一个python的交互式shell,其专为python language所设计,比默认的python shell更加强大。(实际上就是python shell的plus版本

5.Anaconda Promopt、Windows Terminal、CMD之间的区别与联系:

①三者都是Terminal,但是,内核(即默认的shell)和“环境”不一样。

Anacoonda Prompt是Anaconda安装包自带的一个Terminal,其内核通常是cmd,但是自动激活Anaconda的Python环境。(用来run带Anaconda环境的python、Jupyter、IPython;适合运行conda、pip、python、科学计算tool等;免去了手动配置环境路径;)

CMD(命令提示符):Windows系统自带的原始命令行tool,内核是cmd.exe,(可以执行一些基础的系统命令,如cd、copy;没有自动激活python环境;没有现代terminal的很多功能,如颜色、tag页、多行编辑等。)

Windows Terminal:Microsoft发布的新一代terminal tool,它本身不内置shell,而是一个platform,可以同时run多个shell,比如:PowerShell、CMD、Git Bash、WSL(Linux子系统)、Anaconda Promopt.(多tag页、美观、支持自定义配置;能够一站式打开所有user喜欢的shell、是developer、programmer的现代化select)

名称

属于谁

默认shell

是否激活Anaconda环境

特点

Anaconda Promopt

Anaconda自带


cmd.exe

会自动激活

为python、Jupyter、IPython准备好

CMD

Windows

cmd.exe

手动配置

最基础的命令窗口

Windows Terminal

Microsoft

自定义

手动配置

可配置、强大、多tag

先步骤一些常见名词的说明和解释,笔者在此绝对不可一笔带过,会将所有与其相关名词、疑惑全部列出,笔者在阅读一些书籍的时候,时常会遇到一笔带过的情形,对这种行为甚为厌恶,笔者觉得有责任讲与terminal和shell有关的疑惑(笔者心中的)全部写出来,供读者参阅:

环境:上述的“Anaconda环境的配置”中的环境一词,就是一个装着特定version的python+特定库的小空间。环境可以有多个,例如现在有两个环境,环境A(Python3.8+pandas1.2+numpy1.18)、环境B(Python3.10+pandas2.0+numpy1.26),它们彼此互不影响,就像有两个独立的空间,user可以在不同的房间放置不同version的tool。

当我们在anaconda官网下载exe文件(以windows为例)后,将其安装在自己computer的指定路径,事实上,我们安装了python(笔者在其官网似乎并未找到指定python版本的安装包,只能够进行最新version的下载)、anacoda附加库(除了python基本库之外的库)、conda包管理tool(管理虚拟环境,笔者写到这里已经发现,知识串联知识,笔者目前只会专注于主题)、一些呢间的应用,如Jupyter Notebook(这是这本书主要用到的工具)等。


2.8.1 IPython shell

看上去像是从命令行run的Python会话,但实际上它provide了很多其他的ability。

在命令行中键入:ipython,即可启动IPython shell

2.8.2 IPython QT-Console

在命令行使用命令:ipython qtconsole,即可启动该应用。

该应用包含一个GUI界面,它囊括了IPython shell的所有ability。

2.8.2-1 IPython Notebook

它是交互式环境IPython的新生代力量。有了IPython Notebook,可以执行code、文本、公式、图像和动画等content都能整合到Web文档中,比如可用来做演示、制作教程或辅助debug程序等。

2.8.2-2 Jupyter项目

近年来,IPython项目有了长足的发展。自从IPython 3.0发布以来,该项目开始迁往新项目Jupyter(https://jupyter.org)。

IPython仍将继续作为Python shell而存在,但IPython项目的Notebook和其他language无关的组件将会被迁移,已组建新项目Jupyter。

上述是2.8的相关资讯,笔者说实话,未能够将一些content有条理的诉述出来,笔者心中依旧存在一些疑惑,笔者打算采用一种先看森林、再观每一颗树的方式,因此就以此段话语为界线,2.8如若笔者有一些观念,会在日后进行修改,上述文字可谓笔者手稿,因此会存留一些错字、主观观念,望读者仅供参考,笔者之初衷,其一是聊发牢骚,将情绪寄予字里行间,不太想像工作那样一丝不苟,其二是希望为读者provide一些灵感

2.9PyPI仓库---Python包索引(Python package Index, PyPI)

PyPI是python编程language的software仓库。它是一个在线platform,developer可以在上面发布、share和分发他们的python软件包,user可以通过PyPI轻松找到并install这些software包。(software包的概念是很广泛的,这不是我们探讨的重点,不再赘述)

官网:https://pypi.python.org/pypi,

笔者以自己安装的anaconda为例,打开anaconda prompt,启动python shell,就可以pip了。

自Python2.7.9和3.4版本开始,install python的时候就会默认安装pip,方便user install第三方库。(摘自网络)


2.10 多种Python IDE

IDE除了具有基本的文本编辑功能之外,还provide一系列code编写和debug的tool,例如自动补全功能、查看命令的相关文档、debug、插入断点等。

2.10.1 IDLE (Integrated Development Environment,集成开发环境)是专门为Python开发而编写的IDE。它是Python标准版自带的官方IDE,因此被嵌入到Python标准发行版中。IDLE软件完全用Python来实现。

(笔者没有进行实验,上述文字全部摘抄于原典“Python数据分析实战”,杜春晓译)

2.10.2 Spyder (Scientific Python Development Environment,Python科学计算开发环境)

Spyder IDE与Matlab IDE有很多相似之处。它在文本编辑器的基础上,添加了句法高亮和code分析tool。此外,该IDE可在图像应用中添加立刻可用的控件。

2.10.3 Eclipse(pyDev)

2.10.4  Sublime

2.10.5 Liclipse

2.10.6 NinjaIDE

2.10.7 Komoda IDE

上述就是一些常用开发的IDE,笔者对于其中的有些熟悉,有些确实是第一次见到,读者对上述这些感兴趣可以自行查阅,此处不赘述。

2.11 SciPy

SciPy是一组专门用于科学计算的开源Python库。

2.11.1 Numpy

Numpy库其名称的含义为“数值Python”(Numerical Python),很多由它发展而来的Python库,都是以其为核心。

Numpy是用于Python进行科学计算的一个基础库,因为它provide了Python基础包所没有provide的数据结构和高性能函数。

2.11.2 pandas

pandas provide了复杂的数据结构和function,其目的是降低处理难度,提升速度和效率。它是python数据分析的核心包。

2.11.3 matplotlib

目前绘制2D图像最常用的Python包。

到这里,2.11就结束了,笔者这里存有一点疑惑,2.11以SciPy开头,然后分别以Numpy、pandas、matplotlib为其子标题,给笔者认为三者应该是从属于SciPy的,可是笔者刚才在网络上查询相关information,发觉四者皆是库,并且没有从属关系,且Numpy还是SciPy的底层依赖,笔者此处不明白,希望读者认识到这点,或者读者心中以有answer,2.8节笔者写的很乱,那正是笔者的内心对于该节的思想,日后如果得闲,会重新整理一下思绪并修改该资讯。笔者点到为止,不愿意在此花费太多time。最后,第二章的相关心得已经结束了,现在的时间是凌晨1点23分,已经很晚了,笔者认为自己是在做一件很有意义的事情,如果我的文章对你有任何的启发或帮助,笔者会从内心感到开心,笔者喜欢纯粹的事情,然后,如果你的心中,或许存有一些疑惑,无论是与这些资讯相关还是生活,笔者都希望读者可以找到启发,找到自己热爱的事情,感谢!