为何Python是数据科学家的最佳选择?

简介  这篇文章主要介绍了数据科学家的一种工作环境 – virtualenv和Jupyter Notebook以及相关的经验技巧,文章约34070字,浏览量444,点赞数6,值得推荐!

Python是一种高级的, 面向对象的编程语言, 支持结构化和功能性编程模式。由于其功能, Python可以快速有效地处理和关联大型和复杂的数据集。这就是为什么像Uber, PayPal和Facebook这样的独角兽初创公司选择Python作为他们用来创建应用程序的编程语言的原因。这也是为什么越来越多的开发人员花时间学习Python进行数据科学的原因。这是开发人员(甚至是非开发人员)为数据科学课程和认证而投资Python的其他原因。

在使用任何编程语言创建代码之前, 你需要了解两件事:要使用的命令以及应如何编写它们的顺序。

这两个参数使编码成为一项非常繁琐的任务。

如果你错误地满足了这些要求中的任何一项, 则你的程序将无法运行。

使编码更加复杂的是, 许多用于使用流行的编程语言(例如Java和Ruby)创建代码的命令都不是那么简单。

例如, 如果你要使用Java创建代码以在屏幕上打印出短语” Hello World”, 则代码应类似于以下内容:

你需要内心地知道每个命令的含义, 为什么必须将它们包含在代码中, 以及为什么要按此顺序放置它们。

否则, 如果程序无法按照你希望的方式运行, 则很难修复代码。

这就是为什么程序员可能需要很长时间来学习, 掌握和使用它来创建程序。

另一方面, Python使用的命令比其他语言更直接。用于对命令进行字符串创建代码段的语法也更加自然。

因此, 再次以创建代码的示例为例, 该代码将在屏幕上打印出短语” Hello World”, 这将是使用Python创建代码时的样子:

请注意, 该代码不仅简短而且易于理解。即使是没有任何编程背景的人也会知道该代码会做什么。

这就是为什么程序员发现与其他编程语言相比, 更容易学习用于数据科学的Python的原因。

数据科学家负责组织, 清理和简化大型和复杂的原始数据集。

他们还负责分析数据, 以提供既有效又简单的解决方案。

使用Python之类的编程语言有助于简化工作, 因为与其他语言相比, 其语法和编程要求更易于使用和理解。

数据科学家喜欢学习Python进行数据科学的另一个原因是Python支持三个最重要的数据科学库:NumPy, Pandas和Matplotlib。

这些库已经包含在Juptyer Notebook中, 该工具是大多数Python程序员用来编码的工具。

关键决策者依靠数据为他们的业务做出更好, 更有利可图的决策。

现在, 各种规模和各个行业的公司都越来越容易使用大数据。

这就是为什么企业现在正在寻找使用这些方法来增加利润和扩大规模的原因。

结果, 现在对数据科学家的需求更高。 IBM专家预测, 到2020年, 数据科学家的需求将增长20%。

最重要的是, 像花旗集团这样的许多公司现在都要求不同部门的员工学习数据科学的Python, 以帮助他们发现市场空白并做出更好的预测。

实际上, 许多职位空缺(例如Google的Financial Analyst职位)现在都要求候选人精通Python和数据分析(数据科学的一个子集)。

由于对数据科学和Python技能的需求在不断增长, 因此在线查找课程不会构成挑战。

自然的趋势是选择Python开发人员课程。

这种方法的问题在于, Python是一种通用的编程语言, 你最终可以学习有关网站和应用程序开发的知识, 而不是数据科学应用程序的知识。

如果你想快速学习如何将Python用于数据科学, 请选择以Python作为模块中包含的一种编程语言的数据科学课程。

这样, 你将了解数据科学的工作原理以及数据科学常用的不同类型的Python编程。

同时, 你还将熟悉数据科学家使用的其他编程语言, 从而进一步扩展你的知识和技能。

在学习任何编程语言时, 经验是最好的老师之一。

通过加入Python社区, 你可以结识其他Python程序员, 他们将很乐意回答你的问题并分享有关如何提高程序效率的想法。

3.练习, 练习, 练习。

学习用于数据科学的Python就像学习如何下棋:学习需要花一点时间, 但要花一辈子才能掌握。而做到这一点的唯一方法就是练习。

GitHub是一个绝佳的地方, 你可以在其中找到可以复制甚至增强的使用Python创建的不同程序。

你还可以在此处上传完成的程序, 并邀请其他Python程序员进行审查, 并为你提供有关工作的反馈。

另外, 你在GitHub上的帐户可以用作在线投资组合, 可以在你申请工作或投标项目时显示。

数据科学正迅速成为各个行业中许多企业的重要组成部分, 因为现在可以轻松访问的数据量非常大。

结果, 现在对人员的需求量很大, 可以帮助他们获取这些大数据集并以他们在制定关键业务决策时可以理解和使用的方式对其进行简化。

花时间学习用于数据科学的Python还会使你具备这些公司正在寻找的技能, 从而使他们成为他们想聘用的主要候选人。

现在已经为你打开了门。问题是:你会采取步骤进行吗?

AI 前线导读:本文是原作者收集到的 Python 经典文章合集。作者将收集到的文章分为十类,方便读者索引,并对每篇文章做了简短介绍,最后给出原文链接。本文适合收藏作为参考手册使用。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

去年我在使用 Medium 平台时,只用它来读别人写的文章,也就是在消费内容,从而读了一大堆关于 Python 的文章。最近,我开始使用该平台的社区功能,例如去关注别的开发者。我也学会了如何给别人的文章点赞,并将这些文章中最有趣部分的标注出来。我的目标是成为 Medium 平台开发者社区中的活跃成员。

在本文中,我想要向你分享 从去年至今我发现的最有趣、最深刻、最有启发性的文章。 我的另一个目标是创建一个系统、全面的列表,为 Python 学员们记录最有价值的内容。

我收藏了非常多精彩的资源,很难说哪一个是最好的。因此,我将这些文章分为 10 类——顺便一提,这也恰好反映出 Python 的多用途、多目标的性质。

  1. 聊天机器人与自然语言处理(NLP)

在你正式开始阅读之前,我还要再啰嗦一句:你应该怎样利用这篇文章呢?你并不需要一口气将本文读完。你只需收藏本文,然后将其作为入门教程或参考手册。有了上面的分类,你可以直接跳到你最感兴趣的部分。

如果我这篇文章有任何的遗漏,或是你有其他好的资源推荐,欢迎留言,以便于我升级本文内容。在此谢过了!

此文是一个全面的 Python 介绍。如果你初学 Python,那么这篇文章是必读的。文章介绍了 Python 的基础知识:变量、控制流、循环及迭代、集合类、数组、结构体、字典等等。此文也涵盖了面向对象编程的基础。因此,如果你刚刚开始学习 Python 开发,那么从此文开始读起是最合适的。


你是否了解 Python 中下划线 ( _ ) 的特殊含义呢?Python 中的下划线有五种不同用法。阅读这篇文章学习一下吧!


数据类(data classes)是 Python3.7 中的一个全新的特性。当需要创建特定数据域的类时,数据类可以大大简化模型。这篇文章为数据类提供了一个通俗易懂的解释,并给出了几个例子。


Python3.6 中有声明类型的语法。但是你需要使用外部工具,如 mypy 或 PyCharm,来强制类型检查。这篇文章非常适合入门学习如何在你的代码中实现静态类型。


该教程展示了一个迭代器类(itertor class)的例子,并讲解了各种不同的生成器函数(generator functions)。

“生成器函数允许你声明一个具有迭代器功能的函数。使用生成器函数,程序员可以快速、便利、简洁地构建迭代器。”

“迭代器指的是可在其上迭代(循环)的对象,其作用是为数据抽象出一个容器,使其表现出与迭代对象类似的功能。你可能在日常开发中已经不知不觉使用了一些迭代对象,如字符串、列表、字典等等。”


这篇文章和接下来的一篇(1.7)讲解了 Python 中的多线程和并行处理的相关知识。这一篇简介了 Python 的有关进程和线程的并行处理特性,下一篇文章介绍了更多高级知识。


本文很好地概览了多线程及其最复杂部分:线程同步及通信。


本文给出了一些数据科学领域编写产品级别代码的建议。这些建议有助于组织、优化你的代码。文章包含许多主题,包括日志、instrumentation 及测试,介绍了版本控制的基础知识,并就代码可靠性给出了若干建议。文章中的建议很中肯,而且很有实用价值。


如果你刚刚入门 Pandas 和 DataFrames,并对 SQL 理解得比较到位,那么我强烈建议你阅读这篇文章。这篇文章整理了一个珍贵的术语库,并附有样例。文章可以帮助你将 SQL 查询需求转换为 Pandas 语法并学习使用这一新语法。


Python 开发者们很高产,但大家应该都听说过这件事:Python 很慢。我觉得这篇文章很有必要一读,因为它介绍了 Python 的性能优化特性。

“运行时间已经不再是你最珍贵的资源了。如今,一家公司最昂贵的资源是其员工的时间。”


如果你需要用 Pandas 处理海量数据,你便需要格外注意编码方式,以求性能最优化。

本篇及下一篇文章回顾了在 Pandas DataFrame 下实现函数的几种方法,并对比了他们的运行速度。


在 Pandas DataFrame 下实现函数的另外一些方法。这些方法利用并行来获取更快的速度。


本文比较了三种并行 IO 操作方法的内存效率。最新的方法是使用 asyncio 模块。该模块是 Python 3.5 及以上版本的 Python 标准库的一部分。如果你希望你的代码既性能好又内存占用小,那么你很适合读一下这篇文章。


这篇文章讲解了如何使用 Aho-Corasick 算法和字典树数据结构在海量数据中进行搜索和替换关键字。这种巧妙的操作令我十分惊叹。


这篇文章展示了多进程 Python 应用的一个高级优化技术。


介绍了一个速度奇快的新型微服务框架:Japronto。


这个教程很适合新手入门。该教程总结了 PyCharm 和 Anaconda 的安装过程,并含有一个十分钟左右的视频,向你展示安装的详细步骤。


这篇文章讲解了如何在软件开发过程中使用 Docker。对于新手是一个很好的入门教程。

Docker 是一个开源工具,可在软件容器内部自动部署应用。


本文是个非常好的教程,附有示例 Docker 文件——如果你在使用 Docker 开发 Python Web 应用,那么这篇文章值得一看!


Apache Spark 是一个大型数据处理引擎,可以通过 PySpark 库在 Python 中使用。在大数据和机器学习领域,该库是一个优秀的原型构建工具。这篇文章可作为在 Python 中使用 Spark 的入门教程。


对于 Python 程序员来说,Jupyter 是一个必不可少的工具。这篇文章很好地介绍了 Jupyter 的最新版本。


这篇文章采用展示示例代码和视频的形式,讲解了八大机器学习算法:线性回归,逻辑回归,决策树,支持向量机,K 近邻,随机森林,K-Means 聚类及主成分分析。这是我最喜欢的文章之一,初学者必读。


本系列共 7 篇文章非常精彩(感谢作者 Daniel Jeffries 的贡献!)。只看标题就可以知道:不擅长数学不代表你学不懂人工智能原理!试一试吧——真的很值得一读!

没关系!我也有你这样的小尴尬,于是我找了一些有用的书籍和网站,帮助你快速学习进步。


4.3 机器学习从入门到精通:超详细 Kaggle 比赛完成步骤,作者 Oren Dar

参与 Kaggle 比赛是一个提升机器学习技术的绝佳方式。该教程向你展示了如何解决一个 Kaggle 上的机器学习问题,并向比赛提交你的结果。



现在你有一个模型,你希望能从 web 上访问它。实现这一功能的方法有好几种,但最快、最健壮的方法就是使用 TensorFlow serving。


线性回归是在因变量和一个或多个独立变量之间建立线性关系的方法。它是机器学习领域中应用最广泛的算法之一。

这篇文章讲解了线性回归的数学基础,然后给出了使用 Python Statsmodels 和 Scikit-Learn 库的例子。如果你是一个新手,我强烈建议你阅读这篇文章。


在这篇文章中,Elior 讲解了三种维数约减方法:主成分分析(PCA),t-SNE 和自编码器。

“我们对于维度约减的需求常常与可视化相关(将维度约减为 2-3 维以供作图),但也不全是这样。有时候我们可能会对性能要求较高,可以忍受一些精度上的牺牲。这样,我们就能将 1,000 维的数据约减到 10 维,从而更快地操作这些数据(比如计算距离)。”


这份教程介绍了使用随机森林解决机器学习问题的详细步骤。该文讲解得十分细致,从数据的准备和清洗,到模型的构建和改进,再到最后的结果可视化。十分值得一读。


在机器学习领域中,需要学习的概念有很多。其中之一便是逻辑回归。这篇文章提供了一个良好的起点,我已经给我的学员们推荐了好几次了。

“逻辑回归是一种机器学习分类算法,用来预测因变量所属类别的概率。在逻辑回归中,因变量是一个二元变量,其数据值为 1(表示‘是’‘成功’等等)或 0(表示‘否’‘失败’等等)。”


该系列教程介绍了特征工程。特征工程是数据科学家最重要的任务之一。特征工程的本质是什么?下面引述了一个经典的解释:

“提出特征是非常困难、耗时的,需要专家级别的知识。‘应用机器学习’本质上就是特征工程。”


这篇文章展示了十种实用的机器学习算法,解释了其基本概念,并推荐了入门级的 Python 库和介绍教程。


我爱好知识共享,而 OpenDataScience 的机器学习课程是一个很好的资源。如果你对这个系列感兴趣,你可以从这篇文章的开头找到课程的所有主题。


本文是很好的时间序列分析的入门文章。文中包含了一个评估 Tesla 和 GM 股价的例子,还用 Facebook Prophet 包构建了一个预测模型。


FaceID 的实现算法是苹果公司的专利产品。这篇文章分析了 FaceID 可能的工作原理,并使用 Siamese 卷积网络给出了一个 FaceID 的实现,对概念加以验证。


根据这个教程,你可以学到如何使用 TensorFlow 在 COCO 数据集上搭建自己的物体识别引擎。


近日,人们提出了用深度神经网络换脸的概念。Deepfakes 是这一领域最有名的算法之一。该算法甚至被用于一些主流媒体中。

这篇文章展示了换脸算法如何应用在游戏行业中,并解释了该算法的基本原理。我相信我们从中可以得出这样一个结论:深度学习几乎可以被应用到任何行业 / 领域中。


我对图像识别的概念很感兴趣。这篇文章采用了“边做边学”的思想,主要讲述了构建以下两个应用的详细步骤:

  • 一个基于 Flask 的 web 应用,与基于 Keras 的图像识别系统相连

  • 一个基于 Google 云存储的图像存储系统


5.5 用基于 Keras 和 TensorFlow 的迁移学习和调优构建图像识别系统,分类(几乎)任意物体,作者 Greg Chu

通过使用相似任务的预训练网络,你可以让自己的卷积神经网络训练速度更快。

“众所周知,卷积网络的训练需要消耗大量数据和资源。例如,ImageNet ILSVRC 模型的训练使用了 120 万张图片、多个 GPU,耗时长达 2-3 周。”


6. 聊天机器人与自然语言处理(NLP)

文本分类是自然语言处理中的基本概念之一。这篇教程介绍步骤如下:

  • 实用技巧和 NLTK 简介


6.2 使用神经网络进行文本分类,作者 gk_

这篇文章讲解了文本分类的工作原理,并演示了如何用两层神经网络实现文本分类。


这篇文章介绍了如何将对话内容定义转换为 TensorFlow 模型,以及如何据此搭建聊天机器人框架。


通过学习本教程,你可以自己创建一个简单的基于 Telegram 的聊天机器人,并在 Heroku 上部署这个机器人。


这是另一个基于 Telegram 的聊天机器人的例子。该文章讲解了如何利用 Zappa 工具将机器人部署到 AWS Lambda 平台上。该任务一周就能完成,听起来很有趣,不是吗?:)


该系列文章和接下来的一篇文章(7.2)可以帮助你通过搭建一个区块链了解其工作原理。我一直喜欢通过动手做来学,这也是为什么我尤其喜欢这类文章。




这篇文章分为 3 部分。作者是一个软件工程师,正在为一个个人项目搭建微服务。小提示:构建个人项目是提升开发技术的绝佳方式!该系列教程内容如下:

在 Docker 中创建微服务的基础设施:

最后同样重要的,构建微服务的商业逻辑:


ElasticSearch 是实现自由文本搜索的一个优秀的工具。通过学习本教程,你可以构建一个 ElasticSearch 服务器,向其上再如数据,并将其与一个基于 Django 的应用连接起来。


BeautifulSoup 是一个抽取 HTML 页面数据的有用工具。这篇文章阐述了其工作原理。


利用 Scrapy,你可以下载网站并使用 CSS 选择器从 HTML 页面中抽取数据。这是 web 爬取的一个成熟的解决方案。这篇文章演示了这种机制是如何工作的,并给出了一个从真实网站中爬取数据的例子。



这篇文章为使用 Python 中的 API 提供了一个很好的例子。我相信作者提出了一个重要问题:在疯狂袭来的信息海洋中选择最有用信息是一个很困难的任务。实际上这也就是我创建这篇文章合集供大家参考的原因。

Medium 平台上有大量内容、诸多用户和堆积如山的文章。当你想要寻找最有趣的用户来与之互动时,你常常会被洪水般的视觉噪声所干扰。

这篇文章给出了一个非常实用的表格,帮助你根据应用场景选择合适的数据可视化方法。随后,文章深入分析了 6 种数据可视化类型,并给出了使用 Python Matplotlib 的例子,实现了以下内容:两种散点图,线图,柱状图,条形图和箱形图。


这一系列文章回答了以下问题:“如何为我们的可视化添加交互功能?”该教程使用 Python,带领你体验完全交互的例子,即 Bokeh 交互可视化库,并附有公共数据集。

以上就是文章合集的所有内容。衷心感谢这些优秀的资源,其中有很多已经为我的 Python 学员们提供了帮助。我在阅读整理的过程中也学到了很多。

如果喜欢本合集,请点赞,以便更多的人能看到这篇文章。如果有任何建议或问题,欢迎留言!

我要回帖

更多关于 数据科学为什么要学python 的文章

 

随机推荐