Python是一种面向对象的解释型计算机程序设计语言,可以在Linux、macOS以及Windows系统中搭建环境并使用,具有跨平台的特点,且代码在不同平台上运行时几乎不需要较大改动。
Python应用领域范围广泛,遍及人工智能、科学计算、Web开发、系统运维、大数据及云计算、金融、游戏开发等。实现强大功能的前提是Python具有数量庞大且功能相对完善的标准库和第三方库。通过对库的引用,能够实现对不同领域业务的开发。然而,由于库的数量庞大,管理和及时维护这些库是重要但复杂度高的事情。
Anaconda是可以便捷获取包且对包进行管理,同时对环境统一管理的发行版本。Anaconda附带了一大批常用数据科学包,包含conda、Python在内的超过180个科学包及其依赖项。
管理环境
如果项目A中用了Python 2,新项目B要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。conda可以为不同的项目建立不同的运行环境。
还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本。conda可以为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。
管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。在数据分析中会用到很多第三方包,conda(包管理器)可以很好地安装、卸载和更新包。
验证conda已被安装
conda --version
更新conda至最新版本
conda update conda
查看conda帮助信息
conda --help
conda create --name <env_name><package_name>
如果要安装指定的版本号,则只需要在包名后面以=和版本号的形式执行。
conda create --name python2 python=2.7
即创建一个名为“python2”的环境,环境中安装版本为2.7的python。
如果要在新创建的环境中创建多个包,则直接在
conda create -n python3 python=3.5 numpy pandas
即创建一个名为“python3”的环境,环境中安装版本为3.5的python,同时也安装了numpy和pandas。
默认情况下,新创建的环境保存在Users/
activate <env_name>
如果创建环境后安装Python时没有指定Python的版本,那么将会安装与Anaconda版本相同的Python版本,即如果安装Anaconda第2版,则会自动安装Python 2.x;如果安装Anaconda第3版,则会自动安装Python 3.x。
当成功切换环境之后,在该行行首将以“(env_name)”开头。
deactivate
当执行退出当前环境,回到root环境命令后,原本行首以“(env_name)”开头的字符将不再显示。
conda info --envs
conda env list
结果中星号“*”所在行即为当前所在环境。
conda create --name <new_env_name> --clone <copied_env_name>
conda create --name py2 --clone python2
即克隆名为“python2”的环境,克隆后的新环境名为“py2”。此时,环境中将同时存在“python2”和“py2”环境,且两个环境的配置相同。
conda remove --name <env_name> --all
精确查找
conda search --full-name <package_full_name>
–full-name为精确查找的参数,
conda search --full-name python
即查找全名为“python”的包有哪些版本可供安装。
模糊查找
conda search <text>
是查找含有此字段的包名。
conda search py
即查找含有“py”字段的包,有哪些版本可供安装。
获取当前环境中已安装的包信息
conda list
执行上述命令后将在终端显示当前环境已安装包的包名及其版本号。
在指定环境中安装包
conda install --name <env_name> <package_name>
conda install --name python2 pandas
即在名为“python2”的环境中安装pandas包。
在当前环境中安装包
conda install <package_name>
conda install pandas
即在当前环境中安装pandas包。
使用pip安装包
使用场景:当使用conda install无法安装时,可以使用pip进行安装,如see包。
pip install <package_name>
pip只是包管理器,无法对环境进行管理。因此如果想在指定环境中使用pip进行安装包,则需要先切换到指定环境中,再使用pip命令安装包。
pip无法更新python,因为pip并不将python视为包。
pip可以安装一些conda无法安装的包,conda也可以安装一些pip无法安装的包。当使用一种命令无法安装包时,可以尝试用另一种命令。
卸载指定环境中的包
conda remove --name <env_name> <package_name>
conda remove --name python2 pandas
即卸载名为“python2”的环境中的pandas包。
卸载当前环境中的包
conda remove <package_name>
conda remove pandas
即在当前环境中卸载pandas包。
更新所有包
conda update --all
conda upgrade --all
在安装Anaconda之后执行上述命令更新Anaconda中的所有包至最新版本,便于使用。
更新指定包
conda update <package_name>
conda upgrade <package_name>
更新多个指定包,则包名以空格隔开,向后排列。
conda upgrade pandas numpy matplotlib
即更新pandas、numpy、matplotlib包。
Anaconda Navigtor
Anaconda可视化的管理界面,用于管理工具包和环境的图形用户界面。
Anaconda Prompt
Anaconda终端,可以便捷地操作conda环境。
IPython
python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置许多很有用的功能和函数。
Jupyter Notebook
Jupyter notebook是基于web的交互式计算环境,可以编辑易于人们阅读的文档,展示数据分析的过程,将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。
Jupyter是服务的三种语言的缩写:Julia,Python和R。
IPython 3.x版本是最后的大一统版本,包括Notebook、Qtconsole等,从IPython 4.0版本开始IPython集中精力做交互式shell,变得轻量化,而剩下的Notebook格式,Qtconsole,和Notebook Web应用等都分离出来统一命名为Jupyter,IPython和Jupyter分家。
安装环境自动关联包
conda install nb_conda
该包可以将conda中创建的环境自动关联到你的notebook中。
安装代码自动补全包
conda install pyreadline
Qtconsole
可执行IPython的仿终端图形界面程序,相比Python Shell界面,Qtconsole可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
Spyder
使用Python语言、跨平台、科学运算集成开发环境。使用Python语言的开放源代码跨平台科学运算IDE,可以跨平台,也可以使用附加组件扩充,自带交互式工具以处理数据。
VSCode
Visual Studio Code是轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux。它内置了对JavaScript,TypeScript和Node.js的支持,并为其他语言(如C ++,C#,Java,Python,PHP,Go)和运行时(如.NET和Unity)提供丰富的扩展生态系统。
Glueviz
Glue是一个Python库,用于探索相关数据集内部和之间的关系。主要特点包括:
链接统计图形。Glue可以创建数据散点图、直方图和2D、3D图像。胶水专注于刷牙和链接范例,其中任何图形中的选择传播到所有其他图形。
灵活地跨数据链接。Glue使用不同数据集之间存在的逻辑链接来覆盖不同数据的可视化,并跨数据集传播选择。链接由用户指定,且任意灵活。
完整的脚本功能。Glue是用Python编写的,并且建立在其标准科学库(即Numpy,Matplotlib,Scipy)之上。用户可以轻松地集成他们自己的python代码进行数据输入,清理和分析。
Orange3
交互式数据可视化
通过巧妙的数据可视化执行简单的数据分析。探索统计分布,箱形图和散点图,或深入了解决策树,层次聚类,热图,MDS和线性投影。
附加组件扩展功能
使用Orange中可用的各种附加组件从外部数据源挖掘数据,执行自然语言处理和文本挖掘,进行网络分析,推断频繁项目集并执行关联规则挖掘。此外,生物信息学家和分子生物学家可以使用Orange通过差异表达对基因进行排序并进行富集分析。
R studio
R软件自带的写脚本的工具。