Python到底能作什么?

  • 来源 | 愿码(ChainDesk.CN)内容编辑
  • 愿码Slogan | 链接每一个程序员的故事
  • 网站 | http://chaindesk.cn
  • 愿码愿景 | 打造全学科IT系统免费课程,助力小白用户、初级工程师0成本免费系统学习、低成本进阶,帮助BAT一线资深工程师成长并利用自身优点创造睡后收入。
  • 官方公众号 | 愿码 | 愿码服务号 | 区块链部落
  • 免费加入愿码全思惟工程师社群 | 任一公众号回复“愿码”两个字获取入群二维码

本文阅读时间:11min前端

若是您正在考虑学习Python,或者已经开始学习它,那么您可能会问:“我使用Python到底能作什么?”程序员

这是一个很难回答的问题,由于Python有不少应用程序。算法

但随着时间的推移,我发现Python有三个主要的流行应用程序:数据库

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

Web开发


最近基于Python的Web框架(如DjangoFlask)在Web开发中变得很是流行。小程序

我为何须要一个Web框架?

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

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

Django和Flask是两个最流行的Python Web框架。若是是刚入门,建议你使用其中一个。浏览器

Django和Flask有什么区别?

主要对比:服务器

· Flask提供简单,灵活和细粒度控制。它是非特定的(它可让你决定如何实现它)。网络

· Django提供了一个一应俱全的体验:您能够得到管理面板,数据库接口,ORM [对象关系映射]以及开箱即用的应用程序和项目的目录结构。框架

你应该选择:

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

· Django,若是你专一于最终产品,特别是若是你正在开发一个直接的应用程序,如新闻网站,电子商店或博客,你但愿老是有一个单一的,显而易见的方式来作事情。

换句话说,若是你是初学者,Flask多是一个更好的选择,由于它须要处理的组件更少。此外,若是您想要更多自定义,Flask是更好的选择。

另外一方面,若是你想要直接构建一些东西,Django更符合你的需求。

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


首先,机器学习是什么?

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

所以,以下图(图1),您但愿程序识别出它是一只狗。

图片1

鉴于下面的另外一个(图2),您但愿程序识别它是一个桌子。

图2

你可能会说,好吧,我能够写一些代码来作到这一点。例如,若是图片中有不少浅棕色像素,那么咱们能够说它是一只狗。或者,您能够弄清楚如何检测图片中的边缘。而后,你可能会说,若是有不少直边,那么它就是一张桌子。

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

这就是机器学习的切入点。

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

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

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

你可能没有明确地告诉婴儿,“若是有毛茸茸的东西,有浅棕色的头发,那么它多是一只狗。”你可能会说,“那是一只狗。这也是一只狗。这是一张桌子。那个也是一张桌子。“

机器学习算法的工做方式大体相同。

您能够将相同的想法应用于:

· 推荐系统(想一想YouTube,亚马逊和Netflix)

· 人脸识别

· 语音识别

等应用程序。

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

· 神经网络

· 深度学习

· 支持向量机

· 随机森林

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

用于机器学习的Python


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

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

· scikit-learn附带了一些内置的更流行的机器学习算法。我在上面提到了其中一些。

· TensorFlow更像是一个底层库,容许您构建自定义机器学习算法。

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

我该如何掌握机器学习?


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

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

而后,用Kaggle练习所学到的东西。这是一我的们竞争为特定问题构建最佳机器学习算法的网站。他们也为初学者提供了很好的教程。

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

列举一个简单的例子:假设您正在为一家在线销售某些产品的公司工做。做为数据分析师,您能够绘制这样的条形图。
用Python生成的条形图1
从这张图中,咱们能够看出,男性购买了超过400个单位的产品,女性在这个特定的星期天购买了约350个单位的产品。

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

一个明显可能的解释是,这种产品比起女性更受男性欢迎。另外一种可能的解释多是样本量过小并且这种差别只是偶然形成的。而另外一种可能的解释多是,男性倾向于仅在周日因某种缘由购买该产品。

为了理解这些解释中的哪个是正确的,您能够绘制另外一个像这样的图。
用Python生成的折线图1
咱们不是仅显示星期日的数据,而是查看整整一周的数据。如您所见,从这张图中,咱们能够看到这种差别在不一样的日子里很是一致。

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

若是你看到像这样的图表怎么办?
用Python生成的折线图2
那么,是什么解释了周日的差别?

你可能会说,也许男人每每只是由于某种缘由在周日购买更多的这种产品。或者,也许只是巧合,周日男人买了更多。

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

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

Matplotlib是最受欢迎的数据可视化库之一。

· 很容易上手

· 其余一些图书馆,如Seaborn,都是以它为基础的。所以,学习matplotlib将有助于您之后学习这些其余库。

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

首先应该了解数据分析和可视化的基础知识,而后从Coursera和Khan Academy等网站学习统计数据的基础知识也会有所帮助。

脚本


什么是脚本?

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

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

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

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

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

嵌入式应用程序


Python能够与Rasberry Pi一块儿使用。是硬件爱好者中的一种流行应用。

游戏


您可使用名为PyGame的库来开发游戏,但它并非最流行的游戏引擎。你能够用它来创建一个爱好项目,但若是你对游戏开发很认真的话,我我的不会选择它。

相反,建议开始使用Unity与C#,这是最受欢迎的游戏引擎之一。它容许您为许多平台构建游戏,包括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

· 用于Web浏览器的JavaScript

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

可是,您仍然须要可以存储用户的信息和照片。您须要将它们存储在服务器上,而不只仅存储在用户的设备上,以便每一个用户的关注者均可以查看他/她的照片。

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

· 跟踪谁在追随谁

· 压缩照片,以避免占用太多存储空间

· 在发现功能中向每一个用户推荐照片和新账户

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

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

相关文章
相关标签/搜索