前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python】Python到底能干啥?

【Python】Python到底能干啥?

作者头像
lujohn3li
发布2020-03-04 15:10:46
6010
发布2020-03-04 15:10:46
举报

如果您想学习Python(或者最近开始学习Python),则可能会问自己:

“我到底可以使用Python做什么?”

很多的答案会涌入我们的脑海,因为Python实在是能做太多事情了。

但是慢慢静下心来思考,我发现Python主要有三个方面的应用,今天就让我们一起来讨论一下吧:

第一个:Web开发

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

第三个:脚本编写

让我们依次来揭开她神秘的面纱。

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

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

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

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

我应该使用哪个Python网络框架?

Django和Flask是两个最受欢迎的Python网络框架。如果是刚刚入门,建议使用这两个中的一个。

那么Django和Flask有什么区别?

参考Gareth Dwyer撰写的一篇有关该问题的文章,因此在这里引用一下:

代码语言:javascript
复制
主要对比:

Flask:提供了简单性,灵活性的控制。它是不受限制的(它使您可以决定如何实现事物)。

Django:提供了全方位的体验:您可以很方便地获得管理面板,数据库界面,ORM [对象关系映射]以及目录结构。

您可能应该选择:

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

Django,如果您专注于最终产品。尤其是如果您正在开发简单的应用程序(例如新闻站点,电子商店或博客),并且希望始终有一种单一的,显而易见的处理方式。

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

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

现在,如果您想学习Django,我推荐一本名为《Django for Beginners》的书籍。你可以在公众号后台回复Django获得

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

首先,让我们来回顾一下机器学习

可以参考公众号的几篇文章进行复习:

机器学习从零开始系列连载(1)——基本概念

机器学习原来这么有趣!【第一章】

要解释什么是机器学习的最好方法是给您一个简单的例子。

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

比如说下面这张图片,您希望通过程序识别出它是狗。

又比如下面的图片内容,您希望程序识别出它是一个桌子。

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

对于第二张图片,您可以弄清楚如何检测图片中的边缘。然后,您可能会说,如果有很多笔直的边缘,那就是一张桌子。

但是,这种方法很快就会发现行不通。如果图片中有只白狗没有棕色头发怎么办?如果图片仅显示桌子的圆形部分怎么办?

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

机器学习通过一种算法,来自动检测给定输入中的模式。

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

这其实有点类似于婴儿学习新事物的方式。婴儿是如何学会区分狗狗和桌子的?

我们通常一开始不会明确地告诉婴儿:“毛茸茸且头发浅棕色,是狗。”

我们可能会说:“那是一条狗。这也是一条狗。这是一张桌子。那也是一张桌子。”

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

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

推荐系统(例如YouTube,Amazon和Netflix)

人脸识别

语音识别

以及其他应用程序中。

常见的机器学习算法包括:

神经网络

深度学习

支持向量机

随机森林

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

Python常用于机器学习

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

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

代码语言:javascript
复制
scikit-learn内置了一些流行的机器学习算法。

TensorFlow更像是一个低级库,但是可让您构建自定义的机器学习算法。

如果您刚开始使用机器学习项目,建议您先从scikit-learn开始。如果您开始遇到效率问题,那么TensorFlow则更加适合。

其次要学习机器学习的基础知识,我更会推荐斯坦福大学或加州理工学院的机器学习课程。(请注意:需要复习一些微积分和线性代数的基本知识才能理解这些课程)

然后,将自己所学习的内容在Kaggle(kaggle.com)网站中加以练习。在这个网站上,有很多不错的初学者教程。

下面我将在这里举一个简单的例子。

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

然后,作为数据分析师,您可以绘制一个条形图。

条形图1 —用Python生成

从该图可以看出,在这个特定的星期日,男性购买了400多的这种产品,女性购买了大约350多。

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

一个明显的可能解释是:与男性相比,该产品在男性中更受欢迎。另一个可能的解释可能是样本数量太小,而这种差异是偶然造成的。还有另一个可能的解释是,由于某种原因,男人倾向于只在星期日购买更多该产品。

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

折线图1-使用Python生成

我们不仅仅可以显示星期日的数据,还可以查看整周的数据。从该图可以看出,这一差异在不同的日子是相当一致的。

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

但是,如果您看到像这样的图形怎么办?

折线图2-也使用Python生成

那么,什么如何解释星期天的不同呢?

那么你可能会说,也许出于某种原因,男人往往只会在星期日购买更多这种产品。或者,也许是偶然的,人们在星期天买了更多。

这就是在现实生活中数据分析所需要用到的一个简单的场景。

在Google和Microsoft两家公司的数据分析工作与该示例非常相似,只是更为复杂。实际上,在Google通常是使用Python进行这种分析,而在Microsoft则使用了JavaScript。

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

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

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

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

很容易上手,同时诸如seaborn之类的其他一些库也以此为基础。

因此,学习Matplotlib将有助于您稍后学习其他一些库。

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

您应该首先学习数据分析和可视化的基础知识。推荐大家观看下面一个博主的视频来了解下这些基础知识:

然后我还推荐大家在Pluralsight网站上完成数据分析/可视化的完整课程,可以通过注册来获得10天的免费学习。

在学习了数据分析和可视化的基础知识之后,我们还可以在Coursera和Khan Academy等网站学习统计基础知识。

脚本编写

什么是脚本?

脚本编写通常是指编写自动化、以及一些简单任务的小型程序。

例如我们可以通过脚本来统计包含某些关键字的电子邮件的数量,以便我们可以分析收到的电子邮件。

在下面的时间里,我们公众号团队将会推出一系列实用的脚本案例供大家进行学习和使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档