百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 数据分析——Anaconda的安装与使用

itomcoil 2025-02-15 15:55 29 浏览

实际开发中经常会遇到这样的问题,开发某一应用使用的分别是A包的1.0.5版本,B包的2.0.6版本,C包的0.8版本,Python使用的是2.7版本;而另一应用则需要使用Python 3.6版本,A包的1.1.2版本,B包的2.2.0版本,C包的0.8版本,如何管理这些不同的环境是开发人员的一大难题。对数据分析人员而言,通常需要同时使用SciPy、NumPy、Matplotlib、Pandas、DASK、Scikit-learn等包,而不同包之间还存在兼容问题,如何快速完成这些包的安装和升级也是一个问题。

开源Anaconda正是为解决这些问题应运而生,它是在Linux、Windows和Mac OS X上搭建基于Python语言和R语言数据科学、机器学习环境的最简单方法。Anaconda在全球有超过1100万用户,利用它可以实现以下功能。

· 快速下载1500多个Python/R数据科学包。

· 使用Conda管理库、依赖项和环境。

· 使用Scikit-learn、TensorFlow和Theano开发和训练机器学习和深度学习模型。

· 使用DASK、NumPy、Pandas和Numba分析具有可伸缩性的数据。

· 使用Matplotlib、Bokeh、Datashader和Holoviews可视化结果。

一、安装Anaconda

首先访问网站
https://www.anaconda.com/distribution/,根据对应的操作系统和期望的Python版本,单击Download按钮完成Anaconda应用的下载,如图1所示。

(1)在Windows系统中完成Anaconda程序的下载后,只需要直接运行
Anaconda3-2019.03-Windows-x86_64.exe,单击Next按钮,如图2所示。

图1 Anaconda下载

图2 安装Anaconda

(2)选择“I Agree”接受用户许可协议,进入如图2.13所示的界面,选择安装类型是当前用户使用还是系统全部用户都可以使用。第二种情况需要具有Windows系统管理员权限。

(3)选择程序的安装目录,如图3所示。

(4)选择是否把Anaconda注册为系统默认的Python环境,除非想在系统里面安装多个不同版本的Anaconda或Python,那么通常建议使用系统默认推荐,如图4所示。

图3 选择安装类型

图4 选择安装目录

图5 注册Anaconda

(5)单击Install按钮后,Anaconda将开始安装,当完成安装后,程序将提示是否安装PyCharm,如图6所示,这里直接单击Next按钮,进入下一步。

图6 PyCharm安装

(6)直接单击Finish按钮完成Anaconda安装,如图7所示。

图7 完成Anaconda安装

成功安装Anaconda后,可以在Windows的开始菜单中找到Anaconda的启动菜单,如图8所示。

图8 Anaconda启动菜单

二、利用Conda管理Python环境

Conda是Anaconda提供的包及其依赖项和环境的管理工具,利用它可以:

· 快速安装、运行和升级包及其依赖项;

· 在计算机中便捷地创建、保存、加载和切换环境。

有了Anaconda就可以利用它提供的Conda命令来管理环境,从而解决前面提到的Python版本问题和各种数据分析中用到的包管理问题。要使用Conda,首先需要在系统菜单中单击“Anaconda Prompt”进入命令行模式,如图9所示(对Linux/Mac OS,Conda命令可以直接在命令行运行)。需要注意的是,这里是以管理员身份运行的“Anaconda Prompt”。

图9 Anaconda Prompt

进入Anaconda命令行模式后的第一件事就是更新Anaconda,在命令行输入:

conda update conda

并在提示是否更新的时候输入y(Yes)让更新继续。

1.创建环境

完成了Conda更新,接下来就可以创建一个新的环境了,默认打开Anaconda命令行的时候进入的是系统的base环境(图9),通常开发中会创建不同的环境以满足不同应用对各种Python版本以及第三方包的要求。要创建一个新的环境,可以在命令行输入:

conda create-n env_name package_names

上面的命令中,env_name是设置环境的名称(-n指该命令后面的env_name是要创建环境的名称),package_names是要安装在所创建环境中的包名称,同时还可以指定版本。例如,要创建名为py37的环境,并在其中安装最新的Python版本,可以在终端中输入:

conda create-n py37 python=3

此时Conda将创建一个全新的环境,环境名为py37,使用的Python版本为3,如图10所示。

同样地,如果想创建一个环境,使用Python 3.6,同时安装Pandas 0.24.0版本,以及NumPy包,可以通过如下命令完成。

conda create-n py36 python=3.6 numpy pandas=0.24.0

如果想在创建环境同时安装其他的包,只需要在创建环境时添加对应的包就可以了。

图10 创建py37环境

2.切换环境

在Windows上,可以使用activate my_env进入对应的环境;而在OS X/Linux上则使用source activate my_env进入环境。进入环境后,用户会在终端提示符中看到环境名称。图11所示为进入前面创建的py37环境。

图11 进入py37环境

进入环境后可以通过命令conda list来列出当前环境已经安装的包,以及对应版本,如图12所示。

可以用下面的命令来检查当前环境的Python版本。

python -version

图12 列出当前环境中的包

这里要特别强调的是不同的环境类似于在系统里面建立了隔离沙箱,相互之间不影响,这样开发人员就可以通过切换不同环境满足不同的开发需求。

3.离开环境

要离开当前环境,在命令行输入:

conda deactivate

4.环境共享

环境共享是非常实用的功能,它能保证让整个项目的协作人员都使用相同的软件包,并确保这些包的版本正确。例如,当前数据分析员李四正在进行网络促销数据分析,他需要提交应用给另一部门的张三来部署项目,但是张三并不知道数据分析时使用的是哪个Python版本,以及使用了哪些包和包的版本。这时应该怎么办呢?李四就可以在当前的环境终端输入:

conda env export > environment.yaml

将当前的环境的配置(包括Python版本和所有包的名称)保存到一个YAML文件中。命令的第一部分conda env export用于输出环境中所有包的名称(包括Python版本),第二部分是对应的文件名。那么张三拿到了导出的环境文件,在其他电脑环境中如何使用呢?首先在Conda中进入当前的环境,如:

activate py37

然后再使用以下命令更新环境。

conda env update -f=/path/to/environment.yml

其中,-f表示要使用的环境文件在本地的路径,读者将/path/to/environment.yml替换成本地的实际路径即可。

5.列出环境

有时用户可能会忘记自己创建的环境名称,这时就可以用conda env list命令来列出本地创建的所有环境。用户会看到本地所有环境的列表,而当前所在环境的旁边会有一个星号,Anaconda命令行默认的环境(即还没有选定环境时使用的环境)名为base,如图13所示。

图13 列出环境

6.删除环境

如果不再使用某个环境,可以使用以下命令删除指定的环境,这里的env_name为想删除的本地环境名。

conda env remove-n env_name

7.查看环境信息

如果想了解当前环境,可以使用以下命令。

conda info

此命令会列出该环境的所有信息,如图14所示。

图14 查看环境信息

三、利用Conda管理Python包

创建好对应的工作环境后,通常还需要对环境中的包进行管理。利用Conda命令可以实现各种包的安装、升级以及卸载。

1.安装包

例如,想安装requests这个包,进入创建好的py37环境后,在命令行模式下输入:

conda search requests

将在Anaconda提供的库(repository)里面搜索这个包是否存在,以及有哪些版本。之后可以利用如下命令来完成该包的安装。

conda install requests

在安装时用户也可以指定对应的requests版本。此外,如果在Anaconda提供的库里面找不到想安装的包,或者想安装更新的版本,那么也可以通过社区维护的conda-forge来安装。例如,如果想使用conda-forge来安装Pandas,可以使用如下命令。

conda install-c conda-forge pandas

如果在上面的库都无法找到想安装的包,也可以用标准的Python包管理命令pip来完成在当前环境中第三方包的安装。例如,用来获取国内财经以及股票数据的tushare包,就可以通过在当前环境下使用如下命令来完成安装。

pip install tushare

2.包的卸载与升级

包的卸载可以通过如下命令完成。

conda uninstall packages_name

这里的packages_name就是当前环境中要删除的包。如果想在当前环境中删除另一个环境中的包,可以通过如下命令完成。

conda uninstall my_env packages_name

这里的my_env就是对应的环境名。同时,对于任何Conda命令都可以通过获取帮助的方式来详细了解命令的使用方法,如:

conda uninstall -help

conda install-help

如果想对已经安装的包进行升级,则可以输入:

conda update my_env packages_name

如果是对当前环境中包升级,则可以略去环境名。如果想对所有包升级,则可以输入:

conda update-all

3.为Anaconda添加新的库

有时在国内使用Anaconda提供的库来安装包会比较缓慢,这时可以考虑添加国内镜像来解决这个问题。例如,通过如下命令可以使用中国科学技术大学的镜像。

conda config--add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urlsyes

上面的第二个命令是显示当前有哪些镜像地址。可以通过如下命令来将刚才添加的镜像地址移除,用conda config-show来确认该地址已经移除。

conda config --remove channels 'https://mirrors.ustc.edu.cn/anaconda/pkgs/free/'

conda config-show

2.3.4安装数据分析所需的包

前面已经创建好了一个使用Python 3.7的环境py37,在Anaconda命令行模式使用activate py37进入该环境,接下来需要在该环境中安装数据分析所需的软件包。在命令行模式输入:

conda install scipynumpy statsmodels pandas scikit-learn matplotlib seaborn ipython jupyter

即可完成所有数据分析中用到的包的安装。

python --version

ipython--version

jupyter--version

jupyternotebook --version

分别输入上述命令,可以获得环境中用到的包的版本信息,如图15所示。除此之外,也可以利用conda list方式获得版本信息,如conda list ipython可以查询IPython包的信息。

图15 检查软件包版本

对于Pandas、SciPy等包的版本信息,可以首先在命令行输入ipython,进入IPython的交互模式后查询,具体代码如下。


输入上述代码,将看到如图16所示的输出。

图16 Pandas等的版本信息

相关推荐

《Queendom》宣布冠军!女团MAMAMOO四人激动落泪

网易娱乐11月1日报道据台湾媒体报道,南韩女团竞争回归的生死斗《Queendom》昨(10/31)晚播出大决赛,并以直播方式进行,6组女团、女歌手皆演唱新歌,并加总前三轮的赛前赛、音源成绩与直播现场投...

正确复制、重写别人的代码,不算抄袭

我最近在一篇文章提到,工程师应该怎样避免使用大量的库、包以及其他依赖关系。我建议的另一种方案是,如果你没有达到重用第三方代码的阈值时,那么你就可以自己编写代码。在本文中,我将讨论一个在重用和从头开始编...

HTML DOM tr 对象_html event对象

tr对象tr对象代表了HTML表格的行。HTML文档中出现一个<tr>标签,就会创建一个tr对象。tr对象集合W3C:W3C标签。集合描述W3Ccells返回...

JS 打造动态表格_js如何动态改变表格内容

后台列表页最常见的需求:点击表头排序+一键全选。本文用原生js代码实现零依赖方案,涵盖DOM查询、排序算法、事件代理三大核心技能。效果速览一、核心思路事件入口:为每个<th>绑...

连肝7个晚上,总结了66条计算机网络的知识点

作者|哪吒来源|程序员小灰(ID:chengxuyuanxiaohui)计算机网络知识是面试常考的内容,在实际工作中经常涉及。最近,我总结了66条计算机网络相关的知识点。1、比较http0....

Vue 中 强制组件重新渲染的正确方法

作者:MichaelThiessen译者:前端小智来源:hackernoon有时候,依赖Vue响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据。或者,我们可能只想抛开当前的...

为什么100个前端只有1人能说清?浏览器重排/重绘深度解析

面试现场的"致命拷问""你的项目里做过哪些性能优化?能具体讲讲重排和重绘的区别吗?"作为面试官,我在秋招季连续面试过100多位前端候选人,这句提问几乎成了必考题。但令...

HTML DOM 介绍_dom4j html

HTMLDOM(文档对象模型)是一种基于文档的编程接口,它是HTML和XML文档的编程接口。它可以让开发人员通过JavaScript或其他脚本语言来访问和操作HTML和XML文档...

JavaScript 事件——“事件流和事件处理程序”的注意要点

事件流事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而NetscapeCommunicator的事件流是事件捕获流。事件冒泡即事件开始时由最具体的元素接收,然后逐级向上传播到较为不...

探秘 Web 水印技术_水印制作网页

作者:fransli,腾讯PCG前端开发工程师Web水印技术在信息安全和版权保护等领域有着广泛的应用,对防止信息泄露或知识产品被侵犯有重要意义。水印根据可见性可分为可见水印和不可见水印(盲水印)...

国外顶流网红为流量拍摄性侵女学生?仅被封杀三月,回归仍爆火

曾经的油管之王,顶流网红DavidDobrik复出了。一切似乎都跟他因和成员灌酒性侵女学生被骂到退网之前一样:住在950万美元的豪宅,开着20万美元的阿斯顿马丁,每条视频都有数百万观看...人们仿佛...

JavaScript 内存泄漏排查方法_js内存泄漏及解决方法

一、概述本文主要介绍了如何通过Devtools的Memory内存工具排查JavaScript内存泄漏问题。先介绍了一些相关概念,说明了Memory内存工具的使用方式,然后介绍了堆快照的...

外贸独立站,网站优化的具体内容_外贸独立站,网站优化的具体内容有哪些

Wordpress网站优化,是通过优化代码、数据库、缓存、CSS/JS等内容,提升网站加载速度、交互性和稳定性。网站加载速度,是Google搜索引擎的第一权重,也是SEO优化的前提。1.优化渲染阻塞。...

这8个CSS工具可以提升编程速度_css用什么编译器

下面为大家推荐的这8个CSS工具,有提供函数的,有提供类的,有提取代码的,还有收集CSS的统计数据的……请花费两分钟的时间看完这篇文章,或许你会找到意外的惊喜,并且为你的编程之路打开了一扇新的大门。1...

vue的理解-vue源码 历史 简介 核心特性 和jquery区别 和 react对比

一、从历史说起Web是WorldWideWeb的简称,中文译为万维网我们可以将它规划成如下的几个时代来进行理解石器时代文明时代工业革命时代百花齐放时代石器时代石器时代指的就是我们的静态网页,可以欣...