AI之利器
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,很快就被开发者们发现更适合用于开发网站,并在早期互联网的兴起过程中发挥重要作用。
五、自动化运维
随着技术的进步、业务需求的快速增长,一个运维人员通常要管理上百、上千台服务器,运维工作也变的重复、繁杂。把运维工作自动化,能够把运维人员从服务器的管理中解放出来,让运维工作变得简单、快速、准确。
其他领域:
- 游戏开发
你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。
我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。
- 桌面应用
你可以用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 代码。
参考资料
- Python教程
- GitHub上25个最受欢迎的开源机器学习库
- 本周Github精选:这12个最新AI开源项目,你一定要收下
- 基于深度学习高性能中文车牌识别
- 机器之心
- 13 款炼丹利器,有开源工具包也有超大数据集
- GitHub上Stars最多的10个Python项目
- 对比了 GitHub 5000 个 Python 项目之后,我们精选出了这 36 个
- 2019 年你必须知道的 10 大 Python 库
- 101道 NumPy 练习题
- TensorFlow——An open-source software library for Machine Intelligence
- tensorflow
- tensorflow examples
- TensorFlowAndroidDemo
- TensorFlowAndroidMNIST
- TensorFlow 官方文档中文版
- deep_recommend_system
- ID-Card_with_TensorFlow_Opencv_in_Android
- android-yolo——Real-time object detection on Android using the YOLO network with TensorFlow
- NewFeelings——Android平台相册应用,使用Google开源机器学习框架tensorflow处理图片以提供更好的图片浏览体验
- TensorFlow Android Camera Demo
- 机器学习
- 智能时代——大数据与智能革命重新定义未来
- 数学之美
- 程序员的数学——编程的基础是计算机科学,而计算机科学的基础是数学。
- 程序员的数学 2概率统计
- 程序员的数学 3线性代数
- 使用 Python 写一个自己的游戏
- whoogle-search
- Python 选择题小测试
- Google推出了Python最牛逼的编辑器
- Python 的 SQLite 数据库教程(英文)