「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

栏目: Python · 发布时间: 4年前

内容简介:译者注:原文作者曾在谷歌、微软工作,并从事数据可视化相关工作,文章内容来自于真实工作经验分享。文章较长,适合和笔者一样有意向学习如果你准备开始学习

译者注:

原文作者曾在谷歌、微软工作,并从事数据可视化相关工作,文章内容来自于真实工作经验分享。文章较长,适合和笔者一样有意向学习 Python 的同学阅读。

如果你准备开始学习 Python 或者你已经开始了学习 Python ,那么,你肯能会问自己: “我用 Python 究竟能做些什么?”

嗯,这是一个棘手的问题,因为 Python 有很多应用方向。但随着时间的推移,我发现Python有3个主要应用方向:

  • Web 开发
  • 数据科学 - 包括机器学习,数据分析和数据可视化
  • 脚本

让我们依次来谈谈每一个。

Web 开发

最近基于 Python 的Web框架(如 DjangoFlask )在Web开发中变得非常流行。

这些Web框架可帮助你在 Python 中创建服务器端代码(后端代码)。 这是在你的服务器上运行的代码,而不是用户的设备和浏览器(前端代码)。 如果你不熟悉后端代码和前端代码之间的区别,请参阅下面的脚注。

但是等等,为什么我需要一个Web框架?

这是因为Web框架使构建通用后端逻辑变得更容易。 这包括将不同的URL映射到Python代码块,处理数据库以及生成用户在其浏览器上看到的HTML文件。

我应该使用哪个Python Web框架?

DjangoFlask 是两个最流行的Python Web框架。 如果你刚入门,我建议你使用其中一个。 DjangoFlask 有什么区别? Gareth Dwyer有一篇关于这个主题的优秀文章,所以我在这里引用它:

<引用 开始>

主要对比:

Flask 提供简单,灵活和细粒度控制。 它是不受欢迎的(它可以让你决定如何实现它)。 Django 提供了一个包罗万象的体验:你可以获得管理面板,数据库接口, ORM [对象关系映射]以及开箱即用的应用程序和项目的目录结构。

你应该选择:

Flask ,如果你专注于体验和学习机会,或者你想要更多地控制使用哪些组件(例如你想要使用哪些数据库以及如何与它们进行交互)。

Django ,如果你专注于最终产品。特别是如果你正在开发一个直接的应用程序,如新闻网站,电子商店或博客,你希望总是有一种明显的做事方式。

</引用 结束>

换句话说,如果你是初学者, Flask 可能是一个更好的选择,因为它有更少的组件需要处理。 此外,如果你想要更多自定义, Flask 是更好的选择。

另一方面,如果你想要直接构建一些东西, Django 可能会让你更快地到达那里。

现在,如果你想学习 Django ,我推荐名为《Django for Beginners》的书。 你可以在这里找到它。

你还可以在此处找到该书的免费样本章节。

好的,我们来看下一个主题吧!

数据科学 - 包括机器学习,数据分析和数据可视化

1. 机器学习

首先,让我们回顾一下机器学习是什么

我认为解释机器学习的最佳方法是给你一个简单的例子。 假设你想要开发一个程序来自动检测图片中的内容。

因此,如下图(图1),你希望程序识别出它是一只狗。

「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

鉴于下面的另一个(图2),你希望程序识别它是一个桌子。

「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

你可能会说,好吧,我可以写一些代码来做到这一点。 例如,如果图片中有很多浅棕色像素,那么我们可以说它是一只狗。

或者,你可以弄清楚如何检测图片中的边缘。 然后,你可能会说,如果有很多直边,那么它就是一张桌子。

但是,这种方法很快变得棘手。 如果照片中有一只没有棕色头发的白狗怎么办? 如果图片只显示桌子的圆形部分怎么办?

这就是机器学习的用武之地。

机器学习通常实现一种, 自动检测给定输入模式的算法。

你可以给机器学习算法,给1000张狗的照片和1000张桌子的照片。 然后,它将学习狗和桌子之间的区别。 当你给它一张狗或桌子的新图片时,它将能够识别它是哪一个。

我认为这有点类似于婴儿学习新事物的方式。 宝宝怎么知道一件事看起来像狗,另一件看起来像一张桌子? 可能来自一堆例子。

你可能没有明确地告诉婴儿,“如果有毛茸茸的东西,有浅棕色的头发,那么它可能是一只狗。”

你可能会说,“那是一只狗。 这也是一只狗。 这是一张桌子。 那个也是一张桌子。“

机器学习算法的工作方式大致相同。

你可以将相同的想法应用于:

  • 推荐系统(如 YouTube ,亚马逊和 Netflix
  • 人脸识别
  • 语音识别

等其他场景。

你可能听说过的流行的机器学习算法包括:

  • 神经网络
  • 深度学习
  • 支持向量机
  • 随机森林

你可以使用上述任何算法来解决我之前解释过的图片标注问题。

用于机器学习的 Python

针对机器学习有流行的机器学习库和Python框架。

其中两个最受欢迎的是 scikit-learnTensorFlow

scikit-learn附带了一些内置的更流行的机器学习算法。 我在上面提到了其中一些。 TensorFlow 更像是一个低级库,允许你构建自定义机器学习算法。

如果你刚刚开始使用机器学习项目,我建议你先从 scikit-learn 开始。

如果你开始遇到效率问题,那么我会开始研究 TensorFlow

我该如何学习机器学习?

要学习机器学习基础知识,我会推荐斯坦福大学或加州理工学院的机器学习课程。

请注意,你需要微积分和线性代数的基本知识才能理解这些课程中的一些材料。

然后,我会用Kaggle练习你从其中一门课程中学到的东西。 这是一个人们竞争为特定问题构建最佳机器学习算法的网站。 他们也为初学者提供了很好的教程。

2. 数据分析和数据可视化又是怎样呢?

为了帮助你了解这些可能是什么样子,让我在这里给你一个简单的例子。

假设你正在为一家在线销售某些产品的公司工作。

然后,作为数据分析师,你可以绘制这样的条形图。

「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

用Python生成的条形图

从这张图中,我们可以看出,男性购买了超过400个单位的产品,女性在这个特定的星期天购买了约350个单位的产品。

作为数据分析师,你可能会对这种差异提出一些可能的解释。

一个明显可能的解释是,这种产品比男性更受男性欢迎。 另一种可能的解释可能是样本量太小而且这种差异只是偶然造成的。 而另一种可能的解释可能是,男性倾向于仅在周日因某种原因购买该产品。

要了解哪些解释是正确的,你可能会绘制另一个这样的图表。

「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

我们不是仅显示星期日的数据,而是查看整整一周的数据。 如你所见,从这张图中,我们可以看到这种差异在不同的日子里非常一致。

从这个小小的分析中,你可以得出结论,对这种差异最有说服力的解释是,这种产品更容易受到男性的欢迎,而不是女性。

另一方面,如果你看到像这样的图表怎么办?

「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向

那么,是什么解释了周日的差异?

你可能会说,也许男人往往只是因为某种原因在周日购买更多的这种产品。 或者,也许只是巧合,周日男人买了更多。

因此,这是数据分析在现实世界中可能看起来像的简化示例。

我在谷歌和微软工作时所做的数据分析工作与这个例子非常相似 - 只是更复杂。 我实际上在谷歌使用 Python 进行这种分析,而我在微软使用 JavaScript

我在这两家公司使用 SQL 来从我们的数据库中提取数据。 然后,我会使用 PythonMatplotlib (在谷歌)或 JavaScriptD3.js (在微软)来可视化和分析这些数据。

Python 进行数据分析和数据可视化

Matplotlib是最受欢迎的数据可视化库之一。 这是一个非常适合开始学习的库,原因如下:

  • 容易上手
  • 其他一些库如 seaborn 就是基于它的。 因此,学习 Matplotlib 将帮助你稍后学习这些其他库。

我该如何学习数据分析和数据可视化呢?

你应该首先了解数据分析和可视化的基础知识。 当我在网上寻找好的资源时,我找不到任何东西。 所以,我最终制作了关于这个主题的YouTube视频:

我还最终在Pluralsight上完成了关于这个主题的完整课程,你可以通过注册他们的10天免费试用版免费参加。

我推荐他们两个。

在学习了数据分析和可视化的基础知识之后,从Coursera和Khan Academy这样的网站学习统计学的基础知识也会有所帮助。

脚本

什么是脚本?

脚本通常是指编写旨在自动执行简单任务的小程序。

那么,让我举一个我个人经历的例子。

我曾经在日本的一家小型创业公司工作,我们有一个电子邮件支持系统。 这是一个系统,让我们回复客户通过电子邮件发送给我们的问题。

当我在那里工作时,我的任务是计算包含某些关键字的电子邮件的数量,以便我们分析收到的电子邮件。

我们可以手动完成它,但是,我编写了一个简单的程序/简单脚本来自动执行此任务。

实际上,我们当时使用Ruby,但Python也是这类任务的好语言。 Python适合这种类型的任务,主要是因为它具有相对简单的语法并且易于编写。 用它写一些小东西并测试它也很快。

嵌入式应用程序呢?

我不是嵌入式应用程序方面的专家,但我知道Python可以与Rasberry Pi一起使用。 它似乎是硬件爱好者中的一种流行应用。

游戏又如何呢?

你可以使用名为PyGame的库来开发游戏,但它并不是最流行的游戏引擎。 你可以用它来建立一个爱好项目,但如果你认真对待游戏开发,我个人不会选择它。

相反,我建议开始使用 UnityC# ,这是最受欢迎的游戏引擎之一。 它允许你为许多平台构建游戏,包括Mac,Windows,iOS和Android。

桌面应用又怎样?

你可以使用Tkinter制作一个Python,但它似乎也不是最受欢迎的选择。

相反,似乎Java,C#和C ++等语言更受欢迎。

最近,一些公司也开始使用JavaScript来创建桌面应用程序。

例如,Slack的桌面应用程序是用 Electron 构建的。 它允许你使用 JavaScript 构建桌面应用程序。

就个人而言,如果我正在构建一个桌面应用程序,我会使用 JavaScript 选项。 它允许你重用Web版本中的一些代码(如果有的话)。

但是,我也不是桌面应用程序方面的专家,所以如果你不同意或同意我的意见,请在评论中告诉我。

Python 3 or Python 2?

我会推荐Python 3,因为它更现代,而且在这一点上它是一个更受欢迎的选项。

脚注:关于后端代码与前端代码的说明(以防你不熟悉这些条款):

假设你想制作像 Instagram 这样的东西。

然后,你需要为要支持的每种类型的设备创建前端代码。

你可以使用,例如:

适用于iOS的Swift 适用于Android的 Java 用于Web浏览器的JavaScript 每组代码都将在每种类型的设备/浏览器上运行。这将是一组代码,用于确定应用程序的布局如何,单击按钮时的外观等等。

但是,你仍然需要能够存储用户的信息和照片。你需要将它们存储在服务器上,而不仅仅存储在用户的设备上,以便每个用户的关注者都可以查看他/她的照片。

这是后端代码/服务器端代码的用武之地。你需要编写一些后端代码来执行以下操作:

跟踪谁在关注谁 压缩照片,以免占用太多存储空间 在发现功能中向每个用户推荐照片和新帐户 因此,这是后端代码和前端代码之间的区别。

顺便说一下,Python并不是编写后端/服务器端代码的唯一好选择。还有许多其他流行的选择,包括 Node.js ,它基于JavaScript。


以上所述就是小编给大家介绍的《「译文」: 你究竟能用Python做什么? 我们一起来看下Python的3个主要应用方向》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

傅立叶分析导论

傅立叶分析导论

斯坦恩 (Elias M. Stein)、Rami Shakarchi / 世界图书出版公司北京公司 / 2013-1-1 / 59.00元

傅立叶分析导论,ISBN:9787510040559,作者:Elias M·Stein,Rami Shakarchi 著一起来看看 《傅立叶分析导论》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具