《Python数据科学实践指南》——0.3 为什么是Python
本节书摘来自华章计算机《Python数据科学实践指南》一书中的第0章,第0.3节,作者 纪路,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
0.3 为什么是Python通过书名,各位读者就应该知道这是一本讲解Python编程的书了。数据科学只是个引子,我希望能通过相关的例子和练习激发出读者的兴趣,帮助读者除掉编程这条拦路虎。在很多非计算机相关专业的人的概念里,编程是要归为玄学分类的,通过一堆意义不明的符号就能驱动计算机完成各种各样的任务,是不是有点像魔法师口中所念的咒语。但事实上,计算机只能做两件事情,执行计算并记录结果,只不过它的这两项能力远远超过人类大脑的能力(读者可能看过一些文章,其中有些研究声称尝试估算过人类大脑的计算能力,发现人脑的计算能力仍然比现今最先进的计算机还要快很多倍。但是人类大脑中有些模块,比如视觉、语言,是人类经过亿万年的演化,大自然进行极致优化所产生的结果。这里对于计算和存储能力的比较仅是指数学计算和文字存储方面)。以我正在使用的笔记本来说,其拥有主频为2.5GHz的双核处理器,总计约等于50亿次/秒的计算速度。而512GB的硬盘则可以存储10万本书(按每本书5MB计算,实际上5MB大小的书应该算是鸿篇巨著了。假如按UTF-8编码,每个中文占3~4个字节(byte),而5MB约有500万个字节,这至少是一本百万字的书)。如果想要使用计算机这种能力强大的工具,就需要掌握一门编程语言,用来和计算机进行沟通。虽然我也想为各位读者科普一下众多的编程语言,不过这毕竟是一本教授Python编程的书,所以这里只通过以下几个方面来阐述一下用Python作为数据科学工具的理由。
(1)简单易上手
Python被誉为可执行的“伪代码”,其语法风格接近人类的语言,即使是第一次看代码的人也能很容易理解程序所要实现的功能,读者可以试着阅读下面这段代码:
for i in range(0, 10): print(i)
上面的代码中range代表一段区间,0代表下界,10代表上界,通常Python程序的上下界是左闭右开的一个区间。for的含义表示“这其中的每一个数”,print就不言自明了,代表打印结果到屏幕上。
除了优雅的语法之外,Python还属于解释性语言,我们可以不经过编译、链接等步骤直接获得程序执行的结果。而且Python还拥有交互式解释器,可以让我们随时随地测试我们的代码,如图0-1所示。
(2)资源丰富、应用广泛
已经有很多书讲解了Python相关的技巧,比如《编程导论》是麻省理工学院(MIT)计算机科学导论的课程;《Python编程实战》是一本Python编程技巧进阶的好书,介绍了在Python中如何实践设计模式;《机器学习实战》主要讲解了机器学习的常见算法,其中使用Python编写了全部的代码;《Python高手之路》对如何使用Python构建大型系统提出了很多有益的见解。而且使用Python的知名项目也很多,比如OpenStack开源云计算平台就是由Python编写的,还有世界上最大的视频网站YouTube也是使用Python开发的,等等。当然Python在大数据应用上也有其独特的优势,科学计算库NumPy和SciPy、绘图模块Pylab、统计库Pandas、机器学习库Scikit-learn都是为Python所设计的,现在流行的Hadoop和Spark也都提供了Python接口。可以说在“大数据”“数据科学”领域,如果某一个产品不支持Python,那么其前景将会是难以想象的。
(3)跨平台、免费
Python官方提供了多平台的解释器,包括Windows、Mac OS X、Linux甚至更多的其他平台,你所写的Python代码,可以在不经修改的情况下移植,比如在Windows上开发,在Linux服务器上运行,不会有任何问题。而且Python是免费且开源的,不仅标准库可以随意阅读其源码,连官方解释器的C语言实现也可以获得其源码。Python社区是鼓励分享的,读者不仅可以从中学到很多编程的技巧,甚至还可以做出一些贡献。
相关文章
- python应用-给出行数,输出相应的杨辉三角
- Python的基本Protobuf指南(序列化数据)
- Python中的变量和作用域详解
- python支付宝页面扫码支付
- 归纳整理Python中的控制流语句的知识点
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
- 华为OD机试 - 服务中心选址(Java & JS & Python)
- 用Python实现微信自动化抢红包,再也不用担心抢不到红包了
- Python:利用python语言实现18位身份证号码和15位身份证号码相互转换
- Python编程语言学习:python的列表的特殊应用之一行命令实现if判断中的两类判断
- Python:利用python编程将上海十六区,2020年5月份房价实时地图(数据来源房天下)进行柱状图、热图可视化
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- Python语言学习之数值、小数、空格那些事:python和数值、小数、空格的使用方法之详细攻略
- 战斗到底:Java vs. Python - 用哪个更适合处理海量数据?
- 【python代码】:能在手机上敲 Python 代码几款App
- Python采集招聘数据信息(+详情页)并实现可视化
- 讲真,你知道Python咋来的吗?
- 为什么抖音张同学这么火爆?用 Python 分析 1w+条评论数据,我发现了其中的秘密
- 详解!Python 中这 5 种最常用的线程锁,你会用了吗?
- 7 个让你惊叹的数据科学 Python 库!最后一款真棒!
- 【项目实战】Python基于局部离群因子LOF算法(LocalOutlierFactor)实现信用卡数据异常值检测项目实战
- Python编程:Django中使用Celery执行异步任务和定时任务
- python中使用scvi 去除批次效应 scvi整合批次效应 Integration with scVI 在python中scvi去除批次效应python4
- python基础===pendulum '''Python datetimes made easy.'''
- 【Leetcode刷题Python】452. 用最少数量的箭引爆气球
- Python编程语言学习:python中浅复制/深复制(或浅拷贝/深拷贝)的简介、案例应用注意事项之详细攻略
- Python数据科学pandas终极指南【看这篇文章就够了】