一、Python的主要应用领域:
1.WEB开发,
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python web框架为Django,Flask,Tornado。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架
2.桌面软件
Python在图形界面开发上很强大,可以用tkinter、PyQt、PySide、wxPython、PyGTK框架开发各种桌面软件
3.网络编程
网络编程是Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。
4.爬虫开发
在爬虫领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。如:
①从各大网站爬取商品折扣信息,比较获取最优选择;
②对社交网络上发言进行收集分类,生成情绪地图,分析语言习惯;
③爬取网易云音乐某一类歌曲的所有评论,生成词云;
④按条件筛选获得豆瓣的电影书籍信息并生成表格
5.云计算开发
Python是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。
6.人工智能
在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,MASA和Google早期大量使用Python,为Python积累了丰富的科学运算库,当AI时代来临后,Python从众多编程语言中脱颖而出,各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确定。
7.自动化运维
Python是一门综合性的语言,能满足绝大部分自动化运维需求,前端和后端都可以做,从事该领域,应从设计层面、框架选择、灵活性、扩展性、故障处理、以及如何优化等层面进行学习。Python对于服务器运维而言也有十分重要的用途。由于目前几乎所有Linux发行版中都自带了Python解释器,使用Python脚本进行批量化的文件部署和运行调整都成了Linux服务器上很不错的选择。Python中也包含许多方便的工具,从调控ssh/sftp用的paramiko,到监控服务用的supervisor,再到bazel等构建工具,甚至conan等用于C++的包管理工具,Python提供了全方位的工具集合,而在这基础上,结合Web,开发方便运维的工具会变得十分简单。
常用的web开发框架有:Django、Flask、Tornado 等。许多知名的互联网企业将python作为主要开发语言:豆瓣、知乎、果壳网、Google、NASA、YouTube、Facebook等。
由于后台服务器的通用性,除了狭义的网站之外,很多App和游戏的服务器端也同样用 Python实现。
8.金融分析:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很厉害,生产效率远远高于c,c++,java,尤其擅长策略回测
9.科学计算,数据分析
Python是一门很适合做科学计算的编程语言,97年开始,NASA就大量使用Python进行各种复杂的科学运算,随着NumPy、SciPy、Matplotlib、Enthought librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。囊括Numpy\Pandas\Scipy数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”等。
10.游戏开发
在网络游戏开发中,Python也有很多应用,相比于Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。 PyGame模块可用于编写游戏
二、主要行业发展前景:
发展前景一:Linux运维
发展前景二:Python Web网站工程师
发展前景三:Python自动化测试
发展前景四:数据分析
发展前景五:人工智能
三、Python在一些公司的应用:
谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
CIA: 美国中情局网站就是用Python开发的
NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
YouTube:世界上最大的视频网站YouTube就是用Python开发的
Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
Facebook:大量的基础库均通过Python实现的
Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
豆瓣: 公司几乎所有的业务均是通过Python开发的
知乎: 国内最大的问答社区,通过Python开发(国外Quora)
春雨医生:国内知名的在线医疗网站是用Python开发的
除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
Python在金融中的应用
Python的语法很容易实现那些金融算法和数学计算,每个数学语句都能转变成一行Python代码,每行允许超过十万的计算量。
在金融环境中迈出使用Python第一步的大部分人都可能要攻克某个算法问题。这和想要解出微分方程、求取积分或者可视化某些数据的科学工作者类似。
一般来说,在这一阶段,对正规开发过程、测试、文档或者部署没有太多的要求。然而,这一阶段似乎是人们特别容易爱上 Python 的时候,主要原因是 Python 的语法总体上和用于描述科学问题或者金融算法的数学语法相当近。
我们可以通过一个简单的金融算法——通过蒙特卡洛模拟方法估计欧式看涨期权的价值来说明这一现象。我们将考虑Black-Scholes-Merton(BSM)模型,在这种模型中期权的潜在风险遵循几何布朗运动。假定我们使用以下数值化参数进行估值:
● 初始股票指数水平 S0=100;
● 欧式看涨期权的行权价格 K=105;
● 到期时间 T=1 年;
● 固定无风险短期利率 r=5%;
● 固定波动率 σ=20%。
在 BSM 模型中,到期指数水平是一个随机变量,由公式 1-1 给出,其中 z 是一个标准正态分布随机变量。公式Black-Scholes-Merton(1973)到期指数水平
下面是蒙特卡洛估值过程的算法描述。
(1)从标准正态分布中取得 I 个(伪)随机数 z(i),i∈{1,2,…,I}。
(2)为给定的 z(i)和公式 1-1 计算所有到期指数水平 ST(i)。
(3)计算到期时期权的所有内在价值 hT(i)=max(ST(i) K,0)。
(4)通过公式 1-2 中给出的蒙特卡罗估算函数估计期权现值。公式 1-2 欧式期权的蒙特卡洛估算函数。
导入 NumPy 和 pandas。导入 matplotlib 并配置 Jupyter 绘图样式和方法。pd.read_csv()可以读取远程或者本地存储的逗号分隔值(CSV)形式数据集。选取一个数据子集,删除NaN(非数值)值。显示关于数据集的一些元信息。以向量化的方式(在 Python 级别上“无循环”)计算对数收益率。得出滚动年化波动率。最后绘制两个时间序列。下图展示了这一简短交互会话所得到的图形化结果。
用几行代码就足以完成金融分析中的典型复杂任务:数据收集、复杂和重复的数学计算以及结果的可视化,令人觉得不可思议。从这个例子中可以看到,pandas使整个时间系列的处理变得就像浮点数上的数学运算那样容易。
将这个例子转换到专业的金融环境中,可以看出金融分析师在应用提供高层次抽象的合适Python工具和库的时候,能够将焦点放在自身的领域上,而不用关心复杂的技术细节。分析师可以快速反应,几乎实时地提供宝贵的调见,确保自己比竞争对手先行一步。这种效率的提高很容易转换为可度量的财务效果。