若是您正在考虑学习Python,或者您最近刚开始学习,前端
您可能会问本身:“我到底能够用Python作什么?”web
这是个棘手的问题,由于Python有不少用途。算法
可是随着时间的推移,数据库
我发现Python主要可用于一下三个方面:后端
咱们就依次来看看吧。浏览器
像Django和Flask这样基于Python的Web框架最近在web开发中变得很是流行。服务器
这些web框架帮助您用Python建立服务器端代码(后端代码)。网络
这些代码在您的服务器上而不是在用户设备以及浏览器上(前端代码)运行。app
若是您不熟悉后端代码和前端代码之间的区别,请参阅下面脚注。框架
可是,等等,我为何须要web框架呢?
那是由于web框架让构建通用后端逻辑变得更简单了。
这包括把不一样的URL映射到Python代码块、处理数据库和生成用户在浏览器中看到的HTML文件。
我应该用哪一个Python web框架?
Django和Flask是两种最流行的Python web框架。
若是您刚刚开始学习,那么能够用它们中的任何一个。
Django和Flask有什么区别?
主要的对比:
您应该选择:
换句话说,若是您是位初学者,Flask多是个更好的选择,由于用到的组件比较少。
若是您想要更多的定制,那么Flask也是个更好的选择。
并且,根据个人数据工程师朋友的见解,
Flask更适合建立那些所谓的REST API的东西,由于它比Django更灵活。
另外一方面,
若是您想构建一些简单的东西,
Django会让您更快地达到目标。
好,咱们接着谈谈下一个!
首先,咱们来回顾一下什么是机器学习。
我认为,解释什么是机器学习的最好方法莫过于举个例子。
假设您想开发一个程序用于自动检测图片中的内容。
所以,对于下面的这张图片(图片1),您但愿您的程序能识别出这是条狗。
图1
而对于下面的这张图片(图片2),您但愿您的程序能识别出它是张桌子。
图2
您也许会说,我能够用几行代码搞定。例如,若是在图片上有不少淡棕色的像素,那么咱们能够说那是狗。
或者,您能够找到在照片中检测边缘的方法。而后,您也许会说,若是有不少直边,那么那就是一张桌子。
可是,这种方法很快就遇到麻烦了。若是图片上是条没有棕色毛发的白狗怎么办?若是图片上显示的只是桌子的圆形部分呢?
轮到机器学习大显身手了。
小编推荐一个学Python的学习裙【 二二七,四三五,四五零 】,不管你是大牛仍是小白,是想转行仍是想入行均可以来了解一块儿进步一块儿学习!裙内有不少干货和技术分享
机器学习可实现一些算法,能自动检测给定输入中的模式。
好比,您给机器学习的算法提供1000张狗的照片和1000张桌子的照片。那么,它将会学习区别狗和桌子。当您给出一张狗或桌子的新图片时,它将可以识别出是狗仍是桌子。
我认为,这和婴儿学习新事物有点相似。婴儿是如何知道同样东西看起来像狗,而另外一样东西看起来像桌子呢?可能就是从大量的例子中学到的。
您也许不会明确地告诉一个婴儿:“若是同样东西是毛茸茸的,而且有着淡棕色的毛发,那么它多是条狗。”
您可能只是说:“那是条狗。这也是条狗。这是桌子。那也是桌子。”
机器学习算法的工做方式大体相同。
您能够把一样的想法应用于:
您可能据说过的流行的机器学习算法包括:
您可使用任何一个上述算法来解决我刚才解释过的图片标注问题。
有一些流行的Python机器学习库和框架,其中最流行的两个是scikit-learn和TensorFlow。
若是您刚开始一个机器学习项目,那么我建议您先用scikit-learn。若是您开始遇到效率问题,那么我建议用TensorFlow。
请注意,您须要微积分和线性代数的基本知识以理解这些课程中的某些内容。
为了帮助您理解,我在这里给您举个简单的例子。假设,您为一家在线销售产品的公司工做。
那么,做为数据分析师,您也许会画一个相似的条形图。
条形图1-由Python生成
从这张图上,咱们能够看到,在某个特定的周日,对于某件产品来讲,男性购买了400多件,而女性购买了大约350件。
做为一个数据分析师,您也许会对其中的差别作出几个可能的解释。
一个很显然的可能解释是,该产品在男性中比在女性中更流行。另外一个可能的解释是,样本量过小,这个差别是偶尔产生的。还有一个可能的解释是,在周日,因为某种缘由,男性比女性更倾向于购买该产品。
为了搞明白哪一个解释是正确的,您可能绘制另外一张图,以下图所示:
折线图1-由Python生成
咱们再也不只显示周日的数据,而是整整一周的数据。正如您所见,从这张图中,咱们能够看到,这种差别在不一样的日子里很一致。
从这个简单的分析中,您可能得出告终论,对这种差别,一个最有说服力的解释就是,这个产品更受男性而不是女性欢迎。
另外一方面,若是您看到是以下所示的图呢?
折线图2-一样由Python生成
那么,如何解释出如今周日的差别呢?
您也许会说,也许出于某种缘由,男性在周日更倾向于购买该产品。或者,也许只是巧合,男性在周日购买了更多的该产品。
好了,这是个简化的例子,展现了数据分析在真实世界中看起来的样子。
我在谷歌和微软工做的时候作过数据分析,跟这个例子很是类似,只是更复杂一些罢了。事实上,我在谷歌工做时,是用Python来作这种分析,而我在微软的时候,用的是JavaScript。
在这两家公司工做的时候,我用SQL从数据库中提取数据。而后,我会用Python和Matplotlib(在谷歌工做时)或JavaScrip和D3.js(在微软工做时)进行数据可视化和分析。
最流行的数据可视化库之一是Matplotlib。
刚开始学习的话,它是个不错的库,由于:
我会推荐Python 3,由于它更现代化,而且目前它更受欢迎。
脚注:对于后端代码和前端代码的的说明(万一您对这些术语不熟悉)。
假设,您想作个相似于Instagram的东西。
那么,您须要为每种想支持的设备建立前端代码:
每组代码都将在对应类型的设备/浏览器上运行。这组代码将决定应用的布局看上去的样子,单击时按钮的外观等等。
可是,您仍然须要存储用户信息和照片的能力。除了在用户的设备商储存这些信息,您还会但愿将这些信息储存在服务器上,这样,每一个用户的关注者就能看到用户的照片。
这里就是后端代码/服务器端代码的用武之地了。您须要编写后端代码以执行如下操做:
好了,这就是后端代码和前段代码之间的区别。
顺便说一下,Python不是编写后端/服务器端代码的惟一好选择。还有不少其余流行的选择,包括Node.js,它是基于JavaScript的。