Python那么火,到底能用来做什么?我们来说说Python3的主要应用

Python那么火,到底能用来做什么?我们来说说Python3的主要应用

如果您正在考虑学习Python,或者您最近刚开始学习,

您可能会问自己:“我到底可以用Python做什么?”

这是个棘手的问题,因为Python有很多用途。

但是随着时间的推移,

我发现Python主要可用于一下三个方面:

Web开发

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

脚本编写

我们就依次来看看吧。

一、Web开发

像Django和Flask这样基于Python的Web框架最近在web开发中变得非常流行。

这些web框架帮助您用Python创建服务器端代码(后端代码)。

这些代码在您的服务器上而不是在用户设备以及浏览器上(前端代码)运行。

如果您不熟悉后端代码和前端代码之间的区别,请参阅下面脚注。

但是,等等,我为什么需要web框架呢?

那是因为web框架让构建通用后端逻辑变得更简单了。

这包括把不同的URL映射到Python代码块、处理数据库和生成用户在浏览器中看到的HTML文件。

我应该用哪个Python web框架?

Django和Flask是两种最流行的Python web框架。

如果您刚刚开始学习,那么可以用它们中的任何一个。

Django和Flask有什么区别?

主要的对比:

Flask提供简洁、灵活和细粒度控制。它很是客观(让您决定如何实现想要的东西)。

Django提供一种包罗万象的体验:您可以获得管理面板、数据库接口、ORM(object-relational mappling,对象关系映射),还有开箱即用的应用程序和项目的目录结构。

您应该选择:

Flask,如果您专注于体验和学习机会,或者您想对选用哪个组件有更大的控制权(例如您想使用哪个数据库和如何与它们交互)。

Django,如果你专注于最终的产品。特别是如果您正在做一个简单的应用程序(如一个新闻网站、电子商店,或者博客)并且希望有一个直接明了的做法。

换句话说,如果您是位初学者,Flask可能是个更好的选择,因为用到的组件比较少。

如果您想要更多的定制,那么Flask也是个更好的选择。

而且,根据我的数据工程师朋友的看法,

Flask更适合创建那些所谓的REST API的东西,因为它比Django更灵活。

另一方面,

如果您想构建一些简单的东西,

Django会让您更快地达到目标。

好,我们接着谈谈下一个!

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

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

我认为,解释什么是机器学习的最好方法莫过于举个例子。

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

因此,对于下面的这张图片(图片1),您希望您的程序能识别出这是条狗。

而对于下面的这张图片(图片2),您希望您的程序能识别出它是张桌子。

您也许会说,我可以用几行代码搞定。例如,如果在图片上有很多淡棕色的像素,那么我们可以说那是狗。

或者,您可以找到在照片中检测边缘的方法。然后,您也许会说,如果有很多直边,那么那就是一张桌子。

但是,这种方法很快就遇到麻烦了。如果图片上是条没有棕色毛发的白狗怎么办?如果图片上显示的只是桌子的圆形部分呢?

轮到机器学习大显身手了。

比如,您给机器学习的算法提供1000张狗的照片和1000张桌子的照片。那么,它将会学习区别狗和桌子。当您给出一张狗或桌子的新图片时,它将能够识别出是狗还是桌子。

我认为,这和婴儿学习新事物有点类似。婴儿是如何知道一样东西看起来像狗,而另一样东西看起来像桌子呢?可能就是从大量的例子中学到的。

您也许不会明确地告诉一个婴儿:“如果一样东西是毛茸茸的,并且有着淡棕色的毛发,那么它可能是条狗。”

您可能只是说:“那是条狗。这也是条狗。这是桌子。那也是桌子。”

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

您可以把同样的想法应用于:

推荐系统(像YouTube、Amazon和Netflix在用的)

面部识别

声音识别

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

神经网络

深度学习

支持向量机

随机森林

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

三、将Python用于机器学习

有一些流行的Python机器学习库和框架,其中最流行的两个是scikit-learn和TensorFlow。

scikit-learn附带了一些更流行的内置机器学习算法。我刚才提到了其中的几个。

TensorFlow更像是个低级库,它允许您构建自定义机器学习算法。

如果您刚开始一个机器学习项目,那么我建议您先用scikit-learn。如果您开始遇到效率问题,那么我建议用TensorFlow。

请注意,您需要微积分和线性代数的基本知识以理解这些课程中的某些内容。

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

为了帮助您理解,我在这里给您举个简单的例子。假设,您为一家在线销售产品的公司工作。

那么,作为数据分析师,您也许会画一个类似的条形图。

从这张图上,我们可以看到,在某个特定的周日,对于某件产品来说,男性购买了400多件,而女性购买了大约350件。

作为一个数据分析师,您也许会对其中的差异做出几个可能的解释。

一个很显然的可能解释是,该产品在男性中比在女性中更流行。另一个可能的解释是,样本量太小,这个差异是偶尔产生的。还有一个可能的解释是,在周日,由于某种原因,男性比女性更倾向于购买该产品。

为了搞明白哪个解释是正确的,您可能绘制另一张图,如下图所示:

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

从这个简单的分析中,您可能得出了结论,对这种差异,一个最有说服力的解释就是,这个产品更受男性而不是女性欢迎。

另一方面,如果您看到是如下所示的图呢?

折线图2-同样由Python生成

那么,如何解释出现在周日的差异呢?

您也许会说,也许出于某种原因,男性在周日更倾向于购买该产品。或者,也许只是巧合,男性在周日购买了更多的该产品。

好了,这是个简化的例子,展示了数据分析在真实世界中看起来的样子。

我在谷歌和微软工作的时候做过数据分析,跟这个例子非常相似,只是更复杂一些罢了。事实上,我在谷歌工作时,是用Python来做这种分析,而我在微软的时候,用的是JavaScript。

在这两家公司工作的时候,我用SQL从数据库中提取数据。然后,我会用Python和Matplotlib(在谷歌工作时)或JavaScrip和D3.js(在微软工作时)进行数据可视化和分析。

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

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

刚开始学习的话,它是个不错的库,因为:

它容易上手

其他一些库,如seaborn是以它为基础的。因此,学习Matplotlib可以帮助您随后学习其他库。

六、选Python 3还是Python 2?

我会推荐Python 3,因为它更现代化,并且目前它更受欢迎。

脚注:对于后端代码和前端代码的的说明(万一您对这些术语不熟悉)。

假设,您想做个类似于Instagram的东西。

那么,您需要为每种想支持的设备创建前端代码:

Swift用于iOS设备

Java用于安卓设备

JavaScript用于web浏览器

每组代码都将在对应类型的设备/浏览器上运行。这组代码将决定应用的布局看上去的样子,单击时按钮的外观等等。

但是,您仍然需要存储用户信息和照片的能力。除了在用户的设备商储存这些信息,您还会希望将这些信息储存在服务器上,这样,每个用户的关注者就能看到用户的照片。

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

持续跟踪谁在关注谁

压缩照片,以免占据太多存储空间

在发现功能中给每个用户推荐照片和新账号

好了,这就是后端代码和前段代码之间的区别。

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

如果有什么想法或者意见的话欢迎来加扣扣群:862672474 大家一起来交流学习呀~ 群里面更有小伙伴整理好了python的学习资料哦~

转载于:https://juejin.im/post/5bc08c5fe51d450e8377c5ef

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101373.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机发展概述教案_计算机的过去与未来 教案

    计算机发展概述教案_计算机的过去与未来 教案《计算机发展史教案》由会员分享,可在线阅读,更多相关《计算机发展史教案(3页珍藏版)》请在人人文库网上搜索。1、计算机发展与应用说课稿教材分析本课选自七年级信息技术上第三课,计算机的产生与发展。本课的内容较多,经过我的分析,我这节课的内容为:1,计算机的产生2,计算机的发展历史3,计算机的未来发展方向。本课知识为了解性知识,学生学完本课可以了解到今生今世的产生与发展历史,并且理解计算机的未来发展方…

    2022年10月18日
    0
  • 对象转JSON首字母大写[通俗易懂]

    对象转JSON首字母大写[通俗易懂]最近在做一个第三方接口,接口给的数据类型如下请求报文如下{“A0144″:”12141256″,”AB6AM”:”中国银行支行”,”STATUS”:1}一般按照对象转JSON会使首字母小写,与接口文档不相符,因此需要转为大写,在字段名称前加@JSONField(name=””)注释即可如下:packagecn.com.cis.acic.util.personHr.vo.request;importcom.alibaba.fastjson.annotation.JS…

    2022年9月16日
    0
  • java之jce「建议收藏」

    java之jce「建议收藏」一、简介JavaCryptographyExtension(JCE)是一组包,它们提供用于加密、密钥生成和协商以及MessageAuthenticationCode(MAC)算法的框架和实现。它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。在早期JDK版本中,由于受美国的密码出口条例约束,Java中涉及加解密功能…

    2022年6月16日
    93
  • 物联网的体系架构概述[通俗易懂]

    物联网的体系架构概述[通俗易懂]物联网物联网有别于互联网,互联网的主要目的是构建一个全球性的信息通信网络,而物联网则侧重信息服务,即利用互联网、无线通信等进行业务信息的传送,服务对象由人转变为包括人在内的所有物品。物联网作为互联网的延伸,通过将智能物件整合到数字世界,面向用户提供个性化和私有化服务。物联网的体系架构应包括如下内涵:网络体系架构、技术与标准体系、资源与标识体系、产业与应用体系、服务与安全体系。(图)USNUSN体系架构是由韩国电子与通信技术研究所在2007年瑞士日内网召开的ITU下一代网络全球标准化会议(NUN-U

    2022年9月15日
    0
  • linux命令mysql启动,在linux中启动mysql服务的命令

    linux命令mysql启动,在linux中启动mysql服务的命令用reboot命令重启linux服务器之后会导致mysql服务终止,也就是mysql服务没有启动。必须要重启mysql服务,否则启动jboss时会报有关数据库mysql方面的错误。命令如下:第一步:安装mysql,设置mysql的安装路径:mysql_install_db–user=mysql–datadir=/home/ems/tmp/mysql/data命令说明:上面的db-use…

    2022年5月13日
    40
  • Linux安装redis和部署

    Linux安装redis和部署Linux安装redis和部署第一步:下载安装包访问https://redis.io/download到官网进行下载。这里下载最新的6.2.6版本.第二步:安装1.通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作tar-zxfredis-4.0.9.tar.gz2.进入解压文件目录使用make对解压的Redis文件进行编译图示:这里因为我redis的安装目录在/usr/locat/目录下,因此会有如下操作注:如果在编译过程中出现问题,有可能是安

    2022年9月28日
    0

发表回复

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

关注全栈程序员社区公众号