01 Web研发
Django和Flask等基于Python的Web框架近期在Web研发中非常流行。
这些Web框架能够帮忙你用Python编写服务器端代码(后端代码)。这是在你的额服务器上运行的代码,而不是运行在用户设备和浏览器的代码(前端代码)。
1. 为何必须Web框架
由于用Web框架能够更易地构建通用后端规律。这包含将区别的URL映射到Python代码块,处理数据库以及生成用户在浏览器中看到的HTML文件。
2. 应该运用哪种Python Web框架
Django和Flask是最流行的两种Python Web框架。倘若你刚才入门,我意见运用其中一种。
3. Django和Flask有什么区别
Gareth Dwyer 关于这个问题有一篇出色的文案,在这儿我引用几段:
重点区别
Flask:能够实现简单、灵活和细致的掌控。并能让你自己决定实现方式。
Django:供给了全面的体验:你能够得到管理面板、数据库接口、ORM(对象关系映射)以及开箱即用的应用程序和项目的目录结构。
怎样选取
Flask:倘若你关注的是经验和学习的机会,或你想更加多地掌控运用那些组件,例如你想运用那些数据库以及怎样与其进行交互。
Django:倘若你关注最后制品,或你正在科研一个简单的应用,例如资讯网站、网店或博客,并且你期盼有单一实现的方式。
换句话说,倘若你是初学者,Flask可能是更好的选取,由于它要把握的组件更少。另外,倘若你想要更加多的定制,那就选Flask。
按照我的数据工程师伴侣Jonathan T Ho的说法,因为Flask 的灵活性,在创建REST API时,Flask 比Django 更适合。
另一方面,倘若你想直接构建有些东西,Django可能会让你更快实现。
02 数据科学
数据科学,这儿包含设备学习,数据分析和数据可视化。
1. 设备学习是什么
假设你想研发一个能够自动检测照片内容的程序。给出图1,你期盼程序识别这是一只狗。
▲图1
给出图2,期盼程序能识别这是一张桌子。
▲图2
你可能会说,我能够写有些代码来做到这点。例如,倘若照片中有非常多浅棕色像素,那样能够识别是狗。
或能够检测照片中的边缘,倘若有非常多直的边缘,那样便是桌子。
但这种办法火速就欠好用了。倘若照片中的狗不是棕色毛的怎么办?倘若照片只表示桌子的圆形部分怎么办?
这儿就必须用到设备学习了。
设备学习经过实现算法,该算法能够自动检测输入中的模式。
例如,你将1000张狗的照片和1000张桌子的照片输入给设备学习算法,让它把握狗和桌子间的区别。那样当你给出新的照片让它识别是狗还是桌子时,它就能够进行判断。
这有点类似孩儿学习新事物的方式。孩儿是怎样学习认知狗或桌子的呢?便是经过海量的例子。
你不会知道告诉孩儿:“倘若某个毛茸茸的东西有浅棕色的毛发,那样就可能是狗。”
你会说,“这是狗,这亦是狗。而这是桌子,那个亦是桌子。“
设备学习算法的方式大致相同。
咱们能够将相同的想法应用于:
举荐系统:
例如YouTube,亚马逊和Netflix
人脸识别语音识别
以及其他应用。
你听过的热门设备学习算法包含:
神经网络深度学习支持向量机随机森林
你能够运用以上任何算法来处理前面说到的照片标签问题。
2. 将Python用于设备学习
有有些热门的设备学习库和Python框架。其中两个最热门的是scikit-learn和TensorFlow。
scikit-learn带有
有些内置的热门
设备学习算法。TensorFlow是一个低级库,能让你创建自定义
设备学习算法。
倘若你刚起始进行设备学习项目,我会意见你先从scikit-learn起始。倘若你起始遇到效率问题,那样能够运用TensorFlow。
3. 数据分析和数据可视化
假设你在一家在线营销制品的机构工作。做为数据分析师,你会绘制这般的条形图。
▲条形图1 - 用Python生成
从这张图中能够看到在某个周日,男性用户购买了400多件制品,女性用户购买了350件制品。
做为数据分析师,对此你会提出有些可能的解释。显著的解释是,该制品在男性用户中更受欢迎。另一种是样本量太小,而这种差异是偶然的。还可能呢是因为某种原由,男性常常在周日才购买该制品。
为了理解哪种解释是正确的,你能够绘制另一个图。
▲折线图1 - 用Python生成
不止看周日的数据,还要看到1星期的数据。从这张图表中能够看出,在区别的日子里这种差异比较一致。
从这个分析中你会得出结论:这种制品在男性中比在女性中更受欢迎。
但倘若你看到像这般的图表呢?
▲折线图2 - 用Python生成
那样,怎么解释周日的差异呢?
你可能会说,亦许出于某种原由男性仅在周日才会更加多地购买这款制品。或许这只是巧合。
我在谷歌和微软工作时所做的数据分析工作与这个例子非常类似,只是更繁杂有些。在谷歌时我运用Python进行分析,而我在微软运用JavaScript。
在这两家机构我都运用SQL从数据库中提取数据。而后,我用Python和Matplotlib(在谷歌)或JavaScript和D3.js(在微软)来可视化和分析这些数据。
4. 运用Python进行数据分析/可视化
进行数据可视化时,Matplotlib是非常热门的库。
Matplotlib很棒,由于:
容易上手seaborn等库是基于它的,学习Matplotlib
能够帮忙你以后学习其他库。
5. 怎样用Python学习数据分析/可视化
你首要应该认识数据分析和可视化的基本知识。在学习了数据分析和可视化的基本知识之后,学习统计学基本知识亦将会特别有帮忙。
03 脚本
什么是脚本?
脚本一般指的是编写能够自动执行简单任务的小程序。
我曾经在日本的一家小型创业机构工作,机构有邮件支持系统,这用来回复客户经过邮件发送给咱们的问题。
在那儿工作时,我的任务是计算包括关键字的邮件数量,以便分析咱们收到的电子邮件。这能够手动完成,但我写了一个简单的脚本来自动执行此任务。
当时咱们运用了Ruby,但针对这类任务Python亦是不错的选取。Python适合这类任务,由于它语法简单,易于编写,况且进行测试亦火速。
04 其他用途
1. 嵌入式应用
我不是这方面的专家,但我晓得Python能够与Rasberry Pi一块用,在硬件兴趣者中很流行。
2. 游戏研发
你能够用PyGame来研发游戏,但这并不是最受欢迎的游戏引擎。你能够用它来研发业余兴趣项目,但倘若你对游戏研发很认真,意见不要选它。
我意见运用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台研发游戏,包含Mac、Windows、iOS和Android。
3. 桌面应用
你能够用Python的Tkinter,但这并不是最热门的选取。Java,C#和C ++等语言似乎更受欢迎。
近期,有些机构亦起始运用JavaScript来研发桌面应用程序。例如,Slack的桌面应用是Electron构建的。它能让你用JavaScript构建桌面应用程序。
就个人而言,倘若我要研发桌面应用,我会选取运用JavaScript。它能让你重新运用网络版本的有些代码。
当然,我并不是桌面应用的专家,因此倘若你有区别的看法,评论中告诉我。
4. Python 3还是Python 2
我会举荐Python 3,由于它更新况且更受欢迎。
5. 后端代码与前端代码的区别
假设你想研发类似Instagram的制品,那样你必须为想要支持类型的设备创建前端代码。
你可能会用到:
面向iOS端的Swift 面向Android的Java面向Web浏览器的JavaScript
每组代码将在每种类型的设备上运行。这类代码将决定应用的布局样式,点击按键的样式等。
然则,您还必须存储用户信息和照片的功能。你要将它们存储在服务器上,而不仅存储在用户的设备上,以便每一个用户的关注者都能够查看其照片。
此时必须用到后端代码/服务器端代码。你必须编写后端代码来执行以下操作:
记录关注
状况压缩照片,从而不占用太多存储空间在
发掘功能中向
每一个用户
举荐照片和新帐户
这是后端代码和前端代码之间的区别。
顺便说一下,Python不是编写后端代码的独一选取,还有基于JavaScript的Node.js等选取。