为了账号安全,请及时绑定邮箱和手机立即绑定
慕课专栏

目录

索引目录

Python 数据分析通关攻略

原价 ¥ 58.00

立即订阅
01 开篇词:用Python做数据分析,再合适不过了
更新时间:2020-06-28 10:26:56
生活的理想,就是为了理想的生活。——张闻天

21世纪的企业竞争是数据的竞争,谁掌握数据,谁就掌握未来。我们每个人都处于数据洪流之中,大数据可以帮助我们分析数据背后的价值。数据整合分析后得到的信息,是数据背后的价值,大数据实现了数据到信息的转化,掌握了大数据时代下的数据,就能够指导世界发展。

正所谓“工欲善其事 必先利其器”,在时代的大背景下,选择最有前景的工具去完成手头的工作,是值得我们每个人去停下来思考的问题。

最近几年,大数据、人工智能、机器学习等概念异常火爆,以至于普通人对此均有所耳闻。而Python语法简单灵活易学,拥有庞大的外部库可扩展自己的应用领域,尤其是许多与大数据内容相关的库,如MatplotlibNumpyPandasSciPyTensorFlow等,因此Python成为了大数据、人工智能、机器学习的首选语言而备受关注。所以我们说,python做数据分析,再合适不过了

Python语法简单易学

如果你不是科班出身的程序猿,那么Python对你来讲应该是最好的编程语言了,没有之一。如果你是科班程序员,再掌握一门Python语言,绝对是如虎添翼的事情。

Python语言非常的简洁,并且可读性非常强。所以,Python的程序对于新手朋友们非常友好,只要你按部就班地学习,并辅之以一定的练习与实战,进入这个领域并且能够用Python工作完成日常工作,3个月足矣。并且这会导致一个良性循环,Python在日常工作中打开局面,会进一步激发你的学习兴趣,进而促使你有更多的信心去更加深入地学习这门语言。

# Python 打印99乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print("{}×{}={}".format(i, j, i*j), end='  ')
    print("")

单从Python语法角度来说,其基础语法非常简单,非常注重用少量的代码构造出很多功能。简单4行代码,就可以打印出99乘法表,简约而不简单。移动互联时代,快人一步,则抢夺先机。简洁的语法,则是更高开发效率的代名词。

Python还是一门脚本语言

脚本语言的“优势”,其实在于它不需要事先“编译”。而Python不仅仅是一门高级语言,它还有脚本语言的特征。这就能拿来做很多事情了。例如做数据清洗的时候,我们迫切地需要看到每一步的执行效果,以此来判断下一步的行动,而这是其它高级语言所不能提供的能力。

Python提供了很多交互式编程环境,比如Ipython,还有最近大名鼎鼎的Jupyter。这对我们的数据分析场景尤为重要。

试想这样一个情况:我有很多封装为函数的小段可视化代码,为了避免代码过于分散,我将封装好后全部放进一个文件中。如果我希望同时执行其中的数段代码可视化功能,以比较不同的代码执行的效果。那我可要抓狂了,因为在同一个集成编辑环境中,我只能显示一个可视化效果,除非我将它们分别下载下来一一比较。

在交互式编程环境中,比如Jupyter,则完全没有这样的烦恼。每段代码可以在同一个页面中分开运行,并交互式的展现,执行完成后,结果会以文本文件的格式写入到当前页面中。当你执行一整套流程,Jupyter结果会像一篇笔记一样让你赏心悦目。而这正是Python作为一门脚本语言带来的独特魅力。

图片描述

从这个角度说,选择用Python做数据分析,是理所当然的选择。事实上,我们可以用先用Python脚本语言的特性做数据处理,再用高级语言的特性对数据能力进行封装。甚至于可以在封装阶段调用C语言的接口,提供额外的扩展功能,而这又是Python作为“胶水语言”的特性了。

Python语言是人工智能的首选

日前,Tiobe发布了2019年6月编程语言排行榜,排名前五的分别是:Java、C、Python、C++、 Visual Basic。其中,Java依旧稳居第一,Python则升至第三位。

图片描述

Python在统计、AI 编程、脚本编写、系统测试等领域均排名第一。此外,Python还在Web编程和科学计算等领域处于领先地位,总之,Python无处不在。目前的情况是,越来越多的开发者正在涌入这些领域,为这些领域带来强大的生命力。

火热只是表象,深层次的原因则是强大的AI支持库。

NumPy支持维度数组与矩阵运算,堪称AI数据神器,而各种算法,实际上处理的都是矩阵和向量。使用NumPy,矩阵的转置、求逆、求和、叉乘、点乘……都可以轻松地用一行代码搞定,行、列可以轻易抽取,矩阵分解也不过是几行代码的问题。而且,NumPy在实现层对矩阵运算做了大量的并行化处理,通过数学运算的精巧,而不是让用户自己写多线程程序,来提升程序效率。

图片描述

对于AI模型,几十上百行代码就够了。当然你也可以选择采用成熟的模型而调用Scikit-Learn的接口,效果却轻而易举地超越前辈的规则模型,简直没有比这更让新入门的朋友如此开心的事情了。

对于深度神经模型,Python也有现成的平台的可以选用,比如TensorFlow,是搭建深度神经网络的首选。

Python生态的完善,让Python的学习曲线非常平缓。你可以选择先成为一名数据分析师,在完全驾驭这个领域之后,再学习经典算法,成为一名数据挖掘领域的专家。如果你对新技术充满虔诚与狂热,那么进入深度学习领域吧。数据分析能力将成为你在AI这个领域的奠基石,算法与数学的积累,会让你在AI的殿堂里走的更远,总之你的一切能力都不会浪费,他们都会因你的下一次选择而不断升华。

而这源于你今天选择了Python这门工具,开启了数据分析的序幕

统计分析?数据可视化?Python都擅长

如果说Python是基础的话,那么Python数据分析的三大工具(NumpyPandasMatplotlib)则是数据分析领域最为灿烂的三大明珠。正是这三大工具,把数据分析推向了另一个高潮。

Numpy提供了一套高效操作数组的方法,是Python科学计算的基础包。

Pandas是一个表格容器,它纳入了大量的标准化的数据模型,提供了高效地操作大型数据集所需的方法。这是成为强大而高效的数据分析环境的重要因素之一。

Matplotlib则是提供了一套可视化的方法。初次接触大家可能会有这样的疑问,MatplotlibMATLAB的名字有些相似,它们是否有一定的相似性呢?

可以这么说,Matplotlib的诞生是源于模仿MATLAB,但是依托Python强大的开发生态,解决MATLAB自身的局限性。MATLAB是一款科学计算软件,在处理数据与程序的交互式场景中,就显得有些相形见绌。而Python作为一款高级语言,在与应用层的交互性方面有着近乎降维打击的优势。并且Matplotlib继承了Python语法简洁优美、开源免费的特点,因此在学术界和工业节应用广泛。

特别是近几年,依托于Python建立的数据分析生态愈发完善,像基于Matplotlib更高级封装的Seaborn,以及依托百度Echarts而来的Pyecharts等等,这些越来越多的开发者贡献自己的智慧,把Python的数据开发生态搭建得越来越齐全。

所以说,选择用Python做数据分析,其实是选择了这个生态,依托于这个生态,就像是站在了巨人的肩上,只有站得高,才能看得远。

没有数据源?那自己写个爬虫好了

俗话常说“巧妇难为无米之炊”,我们学习数据分析,可能最大的阻碍不是语法知识,而是没有足够的数据源去实战。如果不在实际项目中,空学几句语法,那不成了花架子了?用Python则完全不用担心!

网络爬虫通俗的讲就是通过程序去自动采集数据。世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。

Python写爬虫,其实也很简单,只要你了解基础的HTML知识,那么也可以快速开发出自己的爬虫程序,这里我们简单看一个豆瓣电影清单的demo,只要三十行的代码量,就可以自动从豆瓣上采集。在本章的第三小节,我们会详细讲解这个demo,包括爬虫的编写逻辑、requests库的安装等等。

#!/usr/bin/env python
# coding: utf-8

import json
import re
import requests
from requests import RequestException

# 获取网页的内容,以文本形式返回
def get_page(url):
    headers = {
        "Host":"movie.douban.com", 
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
    }
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None

# 对网页文本内容进行解析
def parse_page(html):
    pattern = re.compile('<li.*?list-item.*?data-title="(.*?)".*?data-score="(.*?)".*?>.*?<img.*?class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.*?)".*?/>', re.S)
    items = re.findall(pattern, html)
    for item in items:
        yield{
            'title': item[0],
            'score': item[1],
            'image': item[2],}

# 爬虫主程序,同时print效果
def main():
    url = "https://movie.douban.com/cinema/nowplaying/beijing/"
    html = get_page(url)
    print(html)
    for item in parse_page(html):
        print(item)

main()

总结

总结来说,用Python做数据分析,再适合不过了!Python是一个强有力的编程生态,通俗来说就是,Python能力非常全面:NumpyPandas是专门为数据分析打造的工具,而Matplotlib等工具则提供了可视化的捷径;如果没有数据,Python还可以非常便捷地用来编写爬虫程序,解决数据来源的问题。利用Python工具,可以在最短的时间内,打通数据获取、清洗、统计、到可视化的整个流程。并且Python语法简单易学,学习曲线平滑,非常适宜没有编程基础或者非科班出身的朋友学习。

特别需要指出的是,学会了这门课,不仅仅是多了一个技能,而是多了一个打开AI大门的钥匙,一张AI赛程的入场券!所以,你准备好了吗?

}
立即订阅 ¥ 58.00

你正在阅读课程试读内容,订阅后解锁课程全部内容

千学不如一看,千看不如一练

手机
阅读

扫一扫 手机阅读

Python 数据分析通关攻略
立即订阅 ¥ 58.00

举报

0/150
提交
取消