Py学习  »  Python

Python数据科学实践 | 基于Python搭建初步的数据科学工作环境

狗熊会 • 4 年前 • 639 次点击  
关注我们
长按二维码

⼤家好,本学期初,狗熊会成员讨论了很久,到底应该送⼤家些什么学(折)习(磨)礼物呢?熊⼤灵(脑)机(洞)⼀(大)动(开),要不我们整个Python的系列内容吧。R语千寻已经⼤受欢迎,没有Python也不⾏呀。这时候,⼤家都沉默了!⼼⾥想的是,哪个倒霉蛋要接下这个任务呢。这时候熊⼤起身站起,指点江⼭,挥斥⽅琼的说:政委就是你!我满脸笑(泪)容(⽔)说:天将降⼤任于斯⼈也,必先苦其⼼志劳其筋⻣,学习Python!就这样, 政委接受了这个任务,并成功的邀(压)请(榨)了三位成员组成了“Python敢死队”。本次内容是敢死队成员:春艳同学与政委出品,欢迎品尝。


01
Python数据科学“大势所趋”?


Life is short, you need Python.                                              ——Bruce Eckel


随着信息技术的⽇趋成熟,⽆处不在的信息感知和采集终端使⼈们⽇常⽣活中的各项活动以多种丰富多彩的形式被当做数据收集整合。数据,已经渗透到当今每⼀个⾏业领域,并且正以⼀种难以想象的惊⼈速度不断膨胀。⽆⼈否认,在⽇新⽉异的现代社会,“⼤数据”时代已经悄然降临。

由于其在多个⾏业和学科领域中的⾼度渗透,并且在不同专业领域的数据研究中表现出⾼度融合的趋势,⼤数据已经成为包含计算机科学和统计学在内的多个学科领域的新研究⽅向。同时,由于在⼤数据⽅⾯的研究尚且存在诸多误区,⼈们迫切地需要对“⼤数据”时代的新现象、 理论、⽅法、技术、⼯具和实践进⾏系统的研究。因⽽,“数据科学”应运⽽⽣。

为了全⾯了解数据科学的⾏业状况,2017年kaggle(互联⽹上最著名的数据科学竞赛平台之⼀)⾸次进⾏了全⾏业调查。从超过16,000名从业者的详尽答卷中,对于⽬前业内的发展趋势,我们能够窥得⼀⼆。调查数据表明,在众多数据科学和机器学习的分析⼯具中,Python是数据科学家们最常⽤的语⾔。

图1 数据科学家们⼯作中常⽤⼯具排名

Python 是⼀个⾼层次的结合了解释性、编译性、互动性和⾯向对象的脚本语⾔。在使⽤中主 要具有以下优势:

● 设计严格——可读性⾮常强、易于维护并且收到⼤量⽤户的喜爱;

● 库很丰富——能够⼴泛应⽤于各种问题的处理场景并且节省编写底层代码的时间;

● 免费开源——具有⾼度可移植属性,在各平台上都能顺利⼯作;

● 可扩展性——能够调⽤C/C++的代码以实现快速运⾏或对算法的加密;

● 可嵌⼊性——能够被集成到C/C++从⽽给程序⽤户提供脚本功能。


There should be one-- and preferably only one --obvious way to do it.                                 

—— Tim Peters


由于Python以“优雅”、“明确”、“简单”为设计哲学,阅读⼀个良好的Python程序就感觉像是在读英语⼀样,所以Python程序看上去总是简单易懂,对初学者⾮常友好。因⽽以此为数据科学的⼊⻔⼯具是⾮常不错的选择。

图2  同时使⽤Python和R的数据科学家认为应该选择的数据科学⼊⻔⼯具排名

看到这⾥,你⼼动了吗?是否想学习Python好⼀展拳脚,毕竟⼈⽣苦短,你需要Python。这⾥还是悄悄告诉你,数据科学家⼯作不是简单的使⽤某⼀种语⾔,⽽是在⾃⼰的数据科学环境中,利⽤⾃⼰的数据思维实现数据科学实践的过程。所以,在进⼊Python的学习之前,咱们最紧要的事情是构建能够让数据科学家轻松⼯作的数据科学环境。在这个环境中,你可以轻松使⽤各种数据科学的⼯具,让你畅游其中“⽆法⾃拔”。这就是下⾯要介绍的Anaconda数据科学套件。

1

Anaconda⼊⻔——⼯欲善其事,必先利其器


1
Anaconda功能简介

确定将Python作为数据科学的⼊⻔⼯具之后,我们当然可以选择下载官⽅的Python使⽤,但Python令⼈头疼的环境问题以及多种需要安装的⼯具包通常会成为初学者的阻碍。

不少初学者在Python的安装阶段就被纷⾄沓来的报错信息搞得头⽪发麻,即使最终靠着⽹络上诸位“⼤神”的指示,踩着前⼈⾛过的脚印稀⾥糊涂地解决问题,也不免会费上好⼀番⼯夫, ⾛许多弯路。原本⾼涨的学习热情也因此冷却了⼤半,到时候这本书的名字就真是“Python从⼊⻔到放弃”了。

此时,Anaconda数据科学套件的出现,可谓是⼴⼤初学者的⼀⼤“福⾳”。

所谓“Anaconda套件”,通俗来讲是⼀个打包的集合,⾥⾯预装好了conda、某个版本的python、众多packages以及科学计算⼯具等,所以也称为Python的⼀种发⾏版。由于包含的内容⽐较丰富,因此Anaconda对存储空间有⼀定的要求。⽽空间有限的⽤户,可以选择Miniconda,它只包含最基本的内容——python与conda,以及相关的必需依赖项。

图3  Anaconda套件所包含的部分内容

Anaconda⾥除了Python外,⼀个⾮常重要的组成部分就是conda。conda是⼀个开源的软件包管理和环境管理系统,能够安装多个版本的软件包及其依赖关系。由于conda的设计理念在于把⼏乎所有的⼯具、第三⽅包都当做package对待,甚⾄包括Python和conda⾃身,因此conda打破了包管理和环境管理的约束,能够实现各版本Python和package之间的轻松切换。这种强⼤的设计理念带来了Anaconda套件的两⼤优势。

  • 虚拟环境管理:在进⾏⽇常的数据分析⼯作时,对不同的项⽬我们可能会需要使⽤不同版本的Python以及不同版本的⼯具包。Python2和Python3在语法上的不兼容使我们必须⾯对版本上的冲突。⽽使⽤conda建⽴不同版本的虚拟环境能够帮助我们很好地解决这⼀问题,对要求不同的项⽬进⾏隔离。

  • 包管理:使⽤conda可以对多种⼯具包进⾏更新、安装、卸载操作,并且Anaconda在安装时已经预先集成了numpy、pandas、scipy、scikit-learn等在数据分析过程中常⽤的包。除此之外,conda还可以对⾮Python的包进⾏安装管理,⽐如在新版的Anaconda中,我 们可以安装R语⾔的集成开发环境Rstudio。对于想要同时使⽤Python和R的⼈来说,可真是美滋滋了。

图4 Anaconda官⽹slogan截图

Anaconda号称是最受欢迎的Python和R数据分析集成环境。它通过对虚拟环境、⼯具包、 Python版本的管理,⼤⼤简化了我们的⼯作流程。同时,Anaconda也是适⽤于企业级⼤数据 分析的Python⼯具。它所包含的多个数据科学相关的开源包⼴泛覆盖了数据可视化、机器学 习、深度学习等多个⽅⾯。

⼀⾔以蔽之,选择Anaconda数据科学套件将会是你“⼊坑”Python的良好开端。

2
Anaconda的下载和安装

下载Anaconda最简单直接的⽅式当然是去官⽹。

官⽹上提供了Windows、Mac、Linux三种系统下的Anaconda安装包,并且对每个系统都提供 了分别对应Python3.7和Python2.7的两个版本。此处推荐安装对应Python3.7的版本,毕竟官 ⽅已经宣布2.7的版本只会维护到2020年。不过在后⾯我们也会介绍,安装哪个版本在本质上并没有太⼤的区别,因为通过环境管理,我们可以很⽅便地切换运⾏时的Python版本。

图5  Anaconda官⽹下载界⾯

然⽽,官⽹下载通常会遇到的⼀个问题是——速度慢到令⼈发指。尤其当我们花费⼤量的时间好不容易下载安装好了,想要安装或者更新其中的包时,如果收到由于速度过于缓慢⽽断开连接从⽽安装失败的报错信息,可⼜是⼀段⾟酸⾎泪史。

此时,国内的清华⼤学开源软件镜像站将会提供给你下载Anaconda的“新姿势”。我们可以在这⾥选择适宜⾃⼰系统的Anaconda版本进⾏下载安装,相⽐之下速度会提升不少。

图6  清华⼤学开源软件镜像站anaconda下载界⾯截图

下载好安装包之后,安装的过程按照提示和说明完成即可。值得注意的是,在安装路径的选择 中,请确保你的路径中不包含中⽂、空格或其他⾮英语常⽤字符。否则谁也不能保证你在后续 的使⽤中不会被坑得晕头转向。

Windows系统下的安装除了需要选择安装路径外,还有两个需要额外确认的地⽅。

● 是否要将Anaconda添加到PATH环境变量中?

● 是否要将下载的Anaconda中对应的Python版本设置为默认版本?

图7 Windows系统下Anaconda安装过程截图

对第⼀个问题,建议不要勾选,即不添加。因为勾选后可能会对其他软件产⽣⼲扰。对第⼆个问题,可以根据⾃⼰平时使⽤Python版本的实际情况进⾏勾选。

安装完成后,打开cmd,输⼊conda命令测试安装结果。

图8 Windows系统下Anaconda安装结果测试截图

成功安装后会在【开始】菜单中发现Anaconda的⽂件夹,下拉后有⼏个应⽤:

  • Anaconda Cloud:管理公共或者私有python、jupyter notebook、conda、环境和 packages的地⽅,可以⽅便分享和追踪。

  • Anaconda Navigtor:⽤于管理⼯具包和环境的可视化GUI(Graphical User Interface,简 称 GUI,图形⽤户界⾯),后续涉及的众多管理命令也可以在 Navigator 中⼿⼯实现。

  • Anaconda Prompt: 也被称为终端,⽤于管理⼯具包和环境的命令⾏界⾯,可以便捷的 操作conda环境。

  • Jupyter Notebook:基于web的交互式计算环境,可以编辑易于⼈们阅读的⽂档,⽤于展 示数据分析的过程。后⾯我们会具体重点介绍使⽤它!

  • IPython : Python 的交互式 shell,⽐默认的Python Shell 好⽤得多,⽀持变量⾃动补 全,⾃动缩进,⽀持 bash shell 命令,内置了许多很有⽤的功能和函数。

  • Jupyter Qtconsole:调⽤交互式命令台,在很⼤程度上感觉像⼀个终端,但提供了许多 只能在GUI中使⽤的增强功能,例如内联图形,带语法⾼亮的正确多⾏编辑,图形化提示 等等。可以看作IPython的加强版。

  • Spyder:⼀个使⽤Python语⾔、开放源代码的科学运算集成开发环境。Spyder可以跨平 台,也可以使⽤附加组件扩充,⾃带交互式⼯具以处理数据。

对Mac的⽤户来说,安装成功后在【Launchpad】中会出现Anaconda Navigtor的图标,⽽ Mac系统⾃带的终端即可⽤作Anaconda Prompt,打开终端,同样输⼊conda命令测试安装 结果。

⽽上述提到的多个在Windows【开始】菜单中出现的其他应⽤,⽤户可以选择打开Anaconda Navigtor,在其中点击进⼊,或者在终端中输⼊相应的应⽤名称命令打开应⽤。

图9  Anaconda Navigtor主⻚界⾯

3
Navigtor和Prompt的选择

Navigtor和Prompt都是可⽤来管理环境和⼯具包的应⽤,区别在于:Navigtor是可视化的 GUI,对于不太擅⻓编程的新⼿来讲⾮常友好;⽽Prompt则是命令⾏界⾯,对有⼀定编程基 础的⼈来说⾮常亲切。更简单⼀点来讲,如果偏爱直观类似Web界⾯的选项选择和⿏标点击, 推荐使⽤Navigtor;如果偏爱敲代码带来的乐趣,Prompt会带给你良好的体验。

图10 Anaconda Navigtor环境及⼯具包管理界⾯

据上图能够看出,Navigtor对于环境管理和⼯具包的管理⾮常直观简洁,点击相应位置即可完 成环境及⼯具包的搜索、创建、删除、更新等系列操作,因⽽在此处不对此进⾏详细说明。值 得⼀提的是,Navigtor除了提供环境和包管理功能外,其中的学习和社区版块也给我们提供了 很多的学习和互动资源,有兴趣的⼩伙伴们不妨探索⼀番,或许能有意外的收获。

图11  Anaconda Navigtor学习版块界⾯

好了,今天就讲到这⾥。接下我们争取每⼀周⻅⼀⾯,⼀起利⽤Python完成数据科学的学习。


PS:作业下载安装Anaconda到你的电脑,并测试安装成功。启动Navigtor,并新建一个自己的数据科学环境名字为MyDS。  

今天就讲到这里,后续再继续深入,希望大家把Python练习起来。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33431
 
639 次点击