0%

Python

AI之利器

vardbg

A simple Python debugger and profiler that generates animated visualizations of program flow, useful for algorithm learning.

Python 是(这个排行榜诞生以来)第一个挤入前两名的非 Java 和非 JavaScript 的语言。
RedMonk 编程语言排行榜(2020年6月)

Why

Python主要应用领域

字母侠 2019-11-10 13:55:00

python主要应用领域

当下全栈工程师的概念很火,而Python是一种全栈的开发语言,你如果能学好Python,那么前端,后端,测试,大数据分析,爬虫等这些工作你都能胜任。

Python主要有以下五大主要应用:

  • 网络爬虫
  • 数据分析
  • 人工智能
  • web开发
  • 自动化运维

一、网络爬虫

网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序。众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容。

爬虫有什么用?
做为通用搜索引擎网页收集器。(google,baidu)

做垂直搜索引擎.

科学研究:在线人类行为,在线社群演化,人类动力学研究,计量社会学,复杂网络,数据挖掘,等领域的实证研究都需要大量数据,网络爬虫是收集相关数据的利器。

爬虫是搜索引擎的第一步也是最容易的一步。

为什么选Python?

Python优势很多,总结两个要点:

1)抓取网页本身的接口

相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)

此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize

2)网页抓取后的处理

抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。

其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.

二、数据分析

一般我们用爬虫爬到了大量的数据之后,我们需要处理数据用来分析,不然爬虫白爬了,我们最终的目的就是分析数据,在这方面 关于数据分析的库也是非常的丰富的,各种图形分析图等 都可以做出来。也是非常的方便,其中诸如Seaborn这样的可视化库,能够仅仅使用一两行就对数据进行绘图,而利用Pandas和numpy、scipy则可以简单地对大量数据进行筛选、回归等计算。而后续复杂计算中,对接机器学习相关算法,或者提供Web访问接口,或是实现远程调用接口,都非常简单。

三、人工智能

人工智能并不是什么新概念,其历史已经超过了半个世纪。在人工智能领域过去这几十年的发展中,传统的主流编程语言明明是 Lisp,而后起之秀也是像 Prolog 这样的语言。但是当这一波人工智能真正开始流行起来时,人们发现,那些流行的框架和工具,要么是用 Python 写的,比如 Theano,要么是 C++ 写的,但是 Python 作为接口语言,比如 TensorFlow,Caffe,MxNet 等。仅有的非 Python 框架 Torch,在 2017 年也抵不住压力,开发了 PyTorch。

四、web开发

很多人只知道Java、PHP可做web开发,但对于Python也能做web开发却知之甚少。很多人可能不知道,Python其实是和互联网一起长大的。作为动态语言,并且具有更高的抽象层次的 Python 和 Perl,很快就被开发者们发现更适合用于开发网站,并在早期互联网的兴起过程中发挥重要作用。

五、自动化运维

随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确。

其他领域:

  1. 游戏开发

你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。
我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。

  1. 桌面应用
    你可以用Python的Tkinter,但这并不是最热门的选择。Java,C#和C ++等语言似乎更受欢迎。

3.手机APP
python语言虽然很万能,但用它来开发app还是显得有点不对路,因此用python开发的app应当是作为编码练习、或者自娱自乐所用,加上目前这方面的模块还不是特别成熟,bug比较多,总而言之,劝君莫轻入。

开发环境

MacBook Pro 16

开发工具

PyCharm 2019.3.2

学习资料

基本概念

Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等。

那Python是一种什么语言?

首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。

比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。

所以Python是一种相当高级的语言。

你也许会问,代码少还不好?代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。

那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是的,但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。

但是,对于初学者和完成普通任务,Python语言是非常简单易用的。连Google都在大规模使用Python,你就不用担心学了会没用。

用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。

Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Swift/Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。

如果你是小白用户,满足以下条件:

会使用电脑,但从来没写过程序;
还记得初中数学学的方程式和一点点代数知识;
想从编程小白变成专业的软件架构师;
每天能抽出半个小时学习。
不要再犹豫了,这个教程就是为你准备的!

编程实践

NumPy 互动教程

一个在线教程,通过一步步编码的小例子,让你学会如何使用 Python 的数学计算库 NumPy。

2020.01.26

stpyv8

一个引入 V8 引擎的 Python 模块,使得 Python 程序里面可以写 JavaScript 代码。

参考资料

  1. Python教程
  2. GitHub上25个最受欢迎的开源机器学习库
  3. 本周Github精选:这12个最新AI开源项目,你一定要收下
  4. 基于深度学习高性能中文车牌识别
  5. 机器之心
  6. 13 款炼丹利器,有开源工具包也有超大数据集
  7. GitHub上Stars最多的10个Python项目
  8. 对比了 GitHub 5000 个 Python 项目之后,我们精选出了这 36 个
  9. 2019 年你必须知道的 10 大 Python 库
  10. 101道 NumPy 练习题
  11. TensorFlow——An open-source software library for Machine Intelligence
  12. tensorflow
  13. tensorflow examples
  14. TensorFlowAndroidDemo
  15. TensorFlowAndroidMNIST
  16. TensorFlow 官方文档中文版
  17. deep_recommend_system
  18. ID-Card_with_TensorFlow_Opencv_in_Android
  19. android-yolo——Real-time object detection on Android using the YOLO network with TensorFlow
  20. NewFeelings——Android平台相册应用,使用Google开源机器学习框架tensorflow处理图片以提供更好的图片浏览体验
  21. TensorFlow Android Camera Demo
  22. 机器学习
  23. 智能时代——大数据与智能革命重新定义未来
  24. 数学之美
  25. 程序员的数学——编程的基础是计算机科学,而计算机科学的基础是数学。
  26. 程序员的数学 2概率统计
  27. 程序员的数学 3线性代数
  28. 使用 Python 写一个自己的游戏
  29. whoogle-search
  30. Python 选择题小测试
  31. Google推出了Python最牛逼的编辑器
  32. Python 的 SQLite 数据库教程(英文)

欢迎关注我的其它发布渠道