你到底能用 Python 做什么?以下是 Python 的 3 个主要应用程序。

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

AI吧Python

如果你正在考虑学习 Python——或者如果你最近开始学习它——你可能会问自己:

“我到底能用 Python 做什么?”

嗯,这是一个很难回答的问题,因为 Python 有很多应用程序。

但随着时间的推移,我观察到 Python 有 3 个主要的流行应用程序:

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

让我们依次讨论它们中的每一个。

Web开发

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

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

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

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

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

Django 和 Flask 是两个最流行的 Python Web 框架。如果您刚刚开始,我建议您使用其中之一。

Django 和 Flask 有什么区别?

Gareth Dwyer有一篇关于这个主题的优秀文章,所以让我在这里引用它:

<开始报价>

主要对比:

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

您可能应该选择:

  • Flask,如果您专注于体验和学习机会,或者如果您想要更多地控制要使用的组件(例如您想要使用的数据库以及您想要如何与它们交互)。
  • Django,如果您专注于最终产品。特别是如果您正在开发一个简单的应用程序,例如新闻站点、电子商店或博客,并且您希望始终有一个单一的、明显的做事方式。

</结束引用>

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

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

现在,如果你想学习 Django,我推荐这本书叫做 Django for Beginners。你可以在这里找到它。

您还可以在此处找到该书的免费示例章节。

好,我们进入下一个话题!

数据科学——包括机器学习、数据分析和数据可视化

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

我认为解释什么是机器学习的最好方法是给你一个简单的例子。

假设您想开发一个程序来自动检测图片中的内容。

因此,鉴于下面的这张图片(图 1),您希望您的程序能够识别它是一只狗。

鉴于下面的另一个(图 2),您希望您的程序识别它是一个表格。

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

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

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

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

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

例如,您可以将 1,000 张狗的照片和 1,000 张桌子的照片提供给机器学习算法。然后,它将学习狗和桌子之间的区别。当你给它一张狗或桌子的新照片时,它就能识别出它是哪一张。

我认为这有点类似于婴儿学习新事物的方式。婴儿如何知道一件东西看起来像狗而另一件东西看起来像桌子?可能来自一堆例子。

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

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

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

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

  • 推荐系统(想想 YouTube、亚马逊和 Netflix)
  • 人脸识别
  • 语音识别

在其他应用程序中。

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

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

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

用于机器学习的 Python

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

其中最流行的两个是scikit-learnTensorFlow

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

如果您刚刚开始使用机器学习项目,我建议您首先从 scikit-learn 开始。如果您开始遇到效率问题,那么我会开始研究 TensorFlow。

我应该如何学习机器学习?

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

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

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

数据分析和数据可视化呢?

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

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

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

从这张图中,我们可以看出,在这个特定的周日,男性购买了超过 400 件该产品,女性购买了大约 350 件该产品。

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

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

要了解这些解释中的哪一个是正确的,您可以绘制另一个类似这样的图表。

我们不是只显示周日的数据,而是查看整周的数据。正如你所看到的,从这张图表中,我们可以看到这种差异在不同的日子里是相当一致的。

从这个小分析中,您可能会得出结论,对这种差异最有说服力的解释是,这种产品在男性中比女性更受欢迎。

另一方面,如果你看到的是这样的图表呢?

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

你可能会说,也许男性出于某种原因倾向于只在周日购买更多这种产品。或者,也许这只是一个巧合,男性在周日购买了更多。

因此,这是一个简化的示例,说明数据分析在现实世界中的样子。

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

我在这两家公司都使用 SQL 从我们的数据库中提取数据。然后,我将使用 Python 和 Matplotlib(在 Google)或 JavaScript 和 D3.js(在 Microsoft)来可视化和分析这些数据。

使用 Python 进行数据分析/可视化

最流行的数据可视化库之一是Matplotlib

这是一个很好的入门库,因为:

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

我应该如何使用 Python 学习数据分析/可视化?

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

https://youtu.be/a9UrKTVEeZA

Python 和 Matplotlib 数据分析/可视化简介

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

我会推荐他们两个。

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

脚本

什么是脚本?

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

所以,让我从我的个人经验中举一个例子。

我曾经在日本的一家小型初创公司工作,那里有一个电子邮件支持系统。这是一个系统,我们可以回答客户通过电子邮件向我们发送的问题。

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

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

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

嵌入式应用程序呢?

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

游戏呢?

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

相反,我建议开始使用 C# 的 Unity,它是最流行的游戏引擎之一。它允许您为许多平台构建游戏,包括 Mac、Windows、iOS 和 Android。

桌面应用程序呢?

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

相反, Java、C# 和 C++这样的语言似乎更受欢迎。

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

例如,Slack 的桌面应用程序是用一种叫做 Electron 的东西构建的。它允许您使用 JavaScript 构建桌面应用程序。

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

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

Python 3 还是 Python 2?

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

脚注:关于后端代码与前端代码的注释(以防您不熟悉这些术语):

假设您想制作 Instagram 之类的东西。

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

例如,您可以使用:

  • 适用于 iOS 的 Swift
  • 适用于 Android 的 Java
  • 用于网络浏览器的 JavaScript

每组代码将在每种类型的设备/浏览器上运行。这将是一组代码,用于确定应用程序的布局、单击按钮时按钮的外观等。

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

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

  • 跟踪谁在关注谁
  • 压缩照片,这样它们就不会占用太多存储空间
  • 在发现功能中向每个用户推荐照片和新帐户

所以,这就是后端代码和前端代码的区别。

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

喜欢这篇文章吗?那么,你可能也会喜欢我的 YouTube 频道。

我有一个名为CS Dojo的编程教育 YouTube 频道,拥有 440,000 多名订阅者,我在那里制作了更多类似本文的内容。

例如,您可能喜欢这些视频:

https://youtu.be/poJfwre2PIs

我应该先学习什么编程语言?

https://youtu.be/mElVGah7Epg

我是如何学习编程并在 Google 找到工作的!

无论如何,非常感谢您阅读我的文章!

发表评论

邮箱地址不会被公开。 必填项已用*标注