原文链接

Github地址

一、陈述

1,我到底能用Python做什么?

我观察注意到Python三个主要流行的应用:

  • 网站开发;
  • 数据科学——包括机器学习,数据分析和数据可视化;
  • 做脚本语言。

二、网站开发

网站框架将帮助你创建基于Python的服务器端代码(后端代码),这些代码将在你的服务器上运行,与用户的设备和浏览器截然相反(前端代码)。像Django和Flask这样基于Python网站框架最近在网页开发中变得流行起来。

1,为什么我需要一个网站框架?

因为网站框架将会更容易的建立后端的共同逻辑。这包括将不同的URL映射到Python的代码块,处理数据库,以及生成用户在浏览器上看到的HTML文件。

2,我应该使用哪一个Python网站框架?

Django和Flask这两个框架在使用Python做网站开发最受欢迎,如果你是刚开始学习,我推荐使用其中的一种。

3,Django与Flask两者之间有什么不同?

Gareth Dwyer写了一篇关于这个话题的优秀文章,我在这里引用一下:

主要的区别:

  • Flask提供简易、灵活和细致纹理控制,这是不武断的(它可以让你决定如何实现事情)。
  • Dijango提供详尽的体验:你将得到一个管理面板、数据库接口、ORM(对象关系映射)和应用程序和项目的目录结构。

你也许应该选择:

  • Flask,如果你专注于经验和和学习机会,或者如果你想更多的管理组件的使用(例如,你希望使用什么数据库以及如何与它们交互)。
  • Django,如果你专注于最终的产品,特别是如果你正在开发一个简单的应用程序,比如新闻网站、电子商店或者博客,你想要的总是一个简单的、明显的做事方法。

换句话说,如果你是一个初学者,Flask也许是个比较好的选择因为它需要处理的组件更少。此外,如果您想要更多的定制,Flask是一个更好的选择。

另外,根据我的数据工程师朋友Jonathan T Ho的说法,Flask比Django更适合创建称为REST API的东西。

另一方面,如果你想直接构建一些东西,Django可能会让你更快地实现它。

三、数据科学

1,首先,让我们来复习一下什么是机器学习

我认为解释什么是机器学习的最好方法是给你一个简单的例子。

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

因此,根据下面的图片(图1),你想让你的程序识别它是一只狗。

图1

再看下面的另一个(图2),你希望你的程序识别它是一个桌子。

图2

你可能会说,我可以写一些代码。例如,如果图片中有很多浅棕色的像素,那么我们可以说它是一只狗。

或者,你可以找出如何检测图像中的边缘。然后,你可能会说,如果有很多直边,那么它就是一个桌子。

然而,这种方法很快就变得棘手起来。如果照片里有只白色的狗,没有棕色的头发呢?如果图片只显示了桌子的圆形部分呢?

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

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

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

我觉得这有点像婴儿学新东西。一个婴儿怎么知道一件东西看起来像狗,另一件看起来像桌子?可能来自于一些例子。

你可能不会明确地告诉一个婴儿,“如果一个东西是毛茸茸的,有浅棕色的头发,那么它很可能是一只狗。”

你可能会说,“那是一只狗。”这也是一只狗。这是一张桌子。那一张也是一张桌子。”

机器学习算法的工作原理大致相同。

你可以把同样的想法应用到:

  • 推荐系统(想想YouTube、亚马逊和Netflix);
  • 人脸识别;
  • 语音识别。

在其他应用程序中,你可能听说过的流行的机器学习算法包括:

  • 神经网络;
  • 深度学习;
  • 支持向量机;
  • 随机森林。

你可以使用上述任何一种算法来解决我前面解释过的图像标记问题。

2,使用Python进行机器学习

有一些流行的机器学习库和用于Python的框架

其中最流行的两种是scikit-learn和TensorFlow。

  • scikit-learn附带了一些更流行的机器学习算法。我上面提到过一些。
  • TensorFlow是一个低级库,允许你构建自定义机器学习算法。

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

3,我该如何学习机器学习

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

请注意,你需要微积分和线性代数的基础知识来理解这些课程中的一些材料。

然后,我会和Kaggle一起练习你从这些课程中学到的东西。它是一个网站,人们在那里竞争,为一个给定的问题建立最好的机器学习算法。他们对初学者也有很好的教程。

4,使用Python进行数据分析和数据可视化

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

这是一个很好的开始,因为:

  • 这很容易开始
  • 其他一些库,例如seaborn,则基于此。因此,学习Matplotlib将帮助您稍后学习其他库。

5,我应该如何学习使用Python进行数据分析和数据可视化?

您应该首先学习数据分析和可视化的基础知识。

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

四、脚本语言

1,什么是脚本语言?

脚本化通常指编写小程序,这些程序被设计成自动化简单的任务。

我举个我个人经历的例子。

我曾在日本的一家小公司工作,那里有电子邮件支持系统。这是一个系统,我们可以回答客户通过电子邮件发给我们的问题。

当我在那里工作时,我的任务是计算包含特定关键词的邮件数量,这样我们就可以分析我们收到的邮件。

我们本来可以手动完成,但是我编写了一个简单的程序/简单的脚本来自动完成这个任务。

实际上,那时我们使用Ruby来完成这个任务,但是Python也是一种很好的语言来完成这类任务。Python之所以适合这种类型的任务,主要是因为它的语法相对简单,而且易于编写。它还可以快速地用它写一些小的东西并进行测试。

2,什么是嵌入式应用程序?

我不是嵌入式应用程序的专家,但我知道Python与Rasberry Pi(树莓派)一起工作。在硬件爱好者中,它似乎是一个流行的应用程序。

3,和游戏有什么相关?

你可以使用名为PyGame的库来开发游戏,但它并不是最流行的游戏引擎。你可以用它来建立一个爱好项目,但如果你是认真的游戏开发,我个人不会选择用它来开发。

相反,我建议你从与Unity中的C#开始,C#是最流行的游戏引擎之一。它允许你为许多平台构建一个游戏,包括Mac、Windows、iOS和Android。

4,和嵌入式程序有什么相关?

您可以使用Tkinter用Python制作一个,但它似乎也不是最流行的选择。

相反,像Java、C#和C++这样的语言似乎更受欢迎。

最近,一些公司也开始使用JavaScript创建桌面应用程序。

例如,Slack的桌面应用程序是用一种叫做电子的东西构建的。它允许你使用JavaScript构建桌面应用程序。

就我个人而言,如果我正在构建一个桌面应用程序,我会选择一个JavaScript选项。它允许你重用web版本中的一些代码。

然而,我也不是桌面应用的专家,所以如果你不同意或者同意我的观点,请在评论中告诉我。

5,使用Python3或Python2?

我推荐Python3,因为它更现代,并且在这一点上它更受欢迎。

五,评论与小结

受左耳朵耗子前辈影响,从这周开始坚持每周完成一个ARTS,所以这周就先从这篇技术文章开始。

这篇文章主要从Python最常用的三个应用领域入手,介绍了什么是网站开发,开发框架的选择;什么是机器学习,机器学习库的选择,推荐的机器学习课程,还有数据可视化的学习流程;脚本语言在游戏、嵌入式程序中的应用;最后是Python版本库的选择。

本文适合入门Python的新手、正在纠结使用Python选择应用方向和库的选择的人,还有不知从何开始学习网站开发、机器学习和脚本语言编写的小伙伴。

(第一次尝试翻译和整理国外技术文章,如有不足之处可以提出来,希望自己的翻译技能每天都能进步一点点点点)

What exactly can you do with Python? Here are Python’s 3 main applications._你能用Python做什么?下面是Python的3个主要应用程序。的更多相关文章

  1. python编程中的if __name__ == 'main与windows中使用多进程

    if __name__ == 'main 一个python的文件有两种使用的方法,第一是直接作为程序执行,第二是import到其他的python程序中被调用(模块重用)执行. 因此if __name_ ...

  2. [TPYBoard - Micropython之会python就能做硬件 开篇]会python就能做硬件!

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 会python就能做硬件! 在写这套教程之前,首先感觉山东萝卜电子科技有限公司(turnip ...

  3. Python 数据分析:让你像写 Sql 语句一样,使用 Pandas 做数据分析

    Python 数据分析:让你像写 Sql 语句一样,使用 Pandas 做数据分析 一.加载数据 import pandas as pd import numpy as np url = ('http ...

  4. 小白必看,Python 各种下划线都是啥意思_、_xx、xx_、__xx、__xx__、_classname_

    我们在定义一些变量或者方法的时候,常常会用到下划线,在 Python 中,下划线可是很有用处的哟,比如变量,有些是一个下划线开头的(_xx),有些是两个下划线开头的(__xx),有些是在名称的结尾添加 ...

  5. Python 2.7_Second_try_爬取阳光电影网_获取电影下载地址并写入文件 20161207

    1.昨天文章http://www.cnblogs.com/Mr-Cxy/p/6139705.html 是获取电影网站主菜单 然后获取每个菜单下的电影url  2.今天是对电影url 进行再次解析获取下 ...

  6. python成长之路第三篇(3)_内置函数及生成器迭代器

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.lambda表达式 2.map内置函数 3.filter内置函数 4.reduce内置函数 5.yield生成器 ...

  7. python成长之路第三篇(2)_正则表达式

    打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.什么是正则表达式,python中得正则简介 2.re模块的内容 3.小练习 一.什么是正则表达式(re) 正则表 ...

  8. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  9. python中的if __name__=='__main__': main()解析

    python中我们会看到一段代码是这样的: if __name__=='__main__': main() 这段代码的什么意思,我们可以知道代码的意思是如果__name__=='__main__'为T ...

随机推荐

  1. 10.25 正睿停课训练 Day9

    目录 2018.10.25 正睿停课训练 Day9 A 数独(思路 DP) B 红绿灯(最短路Dijkstra) C 轰炸(计算几何 圆并) 考试代码 B C 2018.10.25 正睿停课训练 Da ...

  2. 潭州课堂25班:Ph201805201 第十二课 new方法,定制属性访问,描述符与装饰器 (课堂笔记)

    1,new方法: 类每次实例化时都会创建一个新的对象, class Textcls: # cls 是指类本身, def __new__(cls, *args, **kwargs): # 在 __ini ...

  3. netty同时做http和websocket(netty入门)

    ---恢复内容开始--- http://www.jianshu.com/p/5c29c6c6d28c ---恢复内容结束--- http://www.jianshu.com/p/5c29c6c6d28 ...

  4. javascript中break与continue,及return的区别

    a).在循环体中, break是跳出整个循环,不执行以后的循环语句: continue是结束本次循环语句,进入下一个循环: b). 在if判断句,结束该函数的执行时,用 return: c). 在函数 ...

  5. android:单位和尺寸

    为了要让程序拥有更好的屏幕适配能力,在指定控件和布局大小的时候 最好使用 match_parent 和 wrap_content,尽量避免将控件的宽和高设定一个固定值.不过在 有些情况下,仅仅使用 m ...

  6. (转)Java atomic原子类的使用方法和原理(一)

    在讲atomic原子类之前先看一个小例子: public class UseAtomic { public static void main(String[] args) { AtomicIntege ...

  7. Unity Shader-后处理:Bloom全屏泛光

    一.简介   今天来学习一下全屏Bloom效果,有时候也叫Glow效果,中文一般叫做“全屏泛光”,这是一种可以模拟出HDR的全屏后处理效果,但是实现原理与HDR相差很远,效果比HDR差一些,但是比HD ...

  8. 全景分割pipeline搭建

    全景分割pipeline搭建 整体方法使用语义分割和实例分割结果,融合标签得到全景分割结果: 数据集使用:panoptic_annotations_trainval2017和cityscapes; p ...

  9. 回顾2018年最受欢迎的十四款NoSQL产品

    ​​虽然NoSQL的流行与火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动.尽管早期的堆栈代码只能算是一种实验,然而现在的系统已经更加的成熟.稳定.不过现在也面临着一个严酷的事实:技术越 ...

  10. Machine、Swarm、Compose、SocketPlane这些Docker生态圈软件各解决了哪些问题?

    Machine:解决的是操作系统异构安装Docker困难的问题,没有Machine的时候,CentOS是一种,Ubuntu又是一种,AWS又是一种.有了Machine,所有的系统都是一样的安装方式. ...