经济学中的定量分析python_Sargent定量经济学(3):Python

原标题:Sargent定量经济学(3):Python

许文立 武汉大学经济与管理学院 xuweny87@163.com

许坤 安徽大学经济学院 kunxu2014@126.com

从今天开始,陆续介绍Sargent等的定量经济学讲稿Python版。

首先看看第一部分 Python编程。

关于Python

总览

在这份讲稿里,我们将会概述Python是什么

展示它的一些功能

将它与另一些语言进行比较

当我们展示Python代码的时候,我们并不是为了让你们尽量掌握所有细节,或者尝试去复杂你们所看到的东西。

我们将会在以后一步一步的展示所有Python的材料。

本次讲座的唯一目的就是让你们能感受一下Python是什么,它能做什么。

Python是什么?

Python是一种通用编程语言,它由荷兰程序猿在1989年构想出来。

Python是免费开源的,由Python软件基金会()发展协调。

Python在过去十年迅速流行起来,现在是最流行的编程语言之一(十大流行编程语言,https://www.rinftech.com/top-10-programming-languages-2017/)

整个Python生态系统仍在不断地、迅速地完善(https://www.oreilly.com/ideas/5-things-to-watch-in-python-in-2017)。

通常用途

Python是一种几乎用于所用应用领域的通用语言

通讯

网络开发

CGI与CUI

游戏

多媒体,数据处理,安全等等

网络服务与高科技公式也经常使用它,例如

, etc., etc.

它经常用于计算机科学和编程的教学。

Python在科学界尤其流行

academia, NASA, CERN, Wall St., etc., etc.

下面,我们将会更加详细的探讨这些。

特性

适用于快速发展的高级语言

被许多实验室支持的,相对较小的核心语言

多范式语言,在其中,多种类型语言可以兼容(procedural, object-oriented, functional等等)

解读而不是编译

句法与设计

Python的一个非常棒的特性就是其优美的句法——我们将会在后面看到许多例子。

优美的代码听起来可能有点“花瓶”,但是实际上它是非常有益的,因为它使得语法易于阅读和易于记忆。

记住如何从文件中读取,按照字典排序,以及其他一些类似的进程任务意味着你们不需要打断思维流程,以便追踪互联网上的正确语法。

与优美句法紧密联系的就是优美的设计。

像 iterators, generators, decorators, list comprehensions等这样的特征使得Python具有很高的表现力,可以让你用更少的代码来完成更多的工作。

靠减少漏洞和句法错误来提高效率。

科学编程

过去十年,Python已经成为了科学计算领域最核心的语言之一。

它现在在下列领域要么是主流语言,要么是主要语言:

机器学习和数据科学

天文学

人工智能

化学

计算生物学

气象学

等等

这个部分简要展示一些Python进行科学编程的示例。

所有的主题在后面还将更加详细的演示

数值编程

基本的矩阵与数组处理能力是由杰出的(http://www.numpy.org/)实验室支持。

提供基本的数组数据类型以及一些简单的处理操作。

例如

Out 25.0

(https://www.scipy.org/)实验室在基础上,又提供了额外的功能。

例如,我们计算积分∫2−2ϕ(z)dz

,ϕ是标准正态分布密度函数。

Out 0.9544997361036417

提供许多标准程序

线性代数

积分

插值

最优化

分布和随机数生成

信号处理

等等

最流行、最全面的图表Python实验室就是(http://matplotlib.org/)

Plots, histograms, contour images, 3D, bar charts, etc., etc.

Output in many formats (PDF, PNG, EPS, etc.)

LaTeX integration

例如,嵌入LaTex注解的2D图

等压图

3D图

更多例子可以在(http://matplotlib.org/gallery.html)中查看。

另一些图形实验室如下:

(https://plot.ly/python/)

(http://bokeh.pydata.org/en/latest/)

(http://www.vpython.org/) — 3D图和动画

符号代数

能使用符号表达式也非常有帮助,正如Mathematica或Maple。

(http://www.sympy.org/en/index.html)实验室提供了这一功能。

fromsympyimportSymbolx,y=Symbol('x'),Symbol('y')# Treat 'x' and 'y' as algebraic symbols

x+x+x+y

Out

3*x + y

我们也能使用表达式

expression=(x+y)**2

expression.expand()

Out

x**2 + 2*x*y + y**2

解多项式

fromsympyimport

solvesolve(x**2+x+2)

Out

sqrt(7)*I/2, -1/2 + sqrt(7)*I/2]

计算极限,导数和积分

fromsympyimportlimit,sin,diff

limit(1/x,x,0)

Out

oo limit(sin(x)/x,x,0)

Out

1

diff(sin(x),x)cos(x)

统计

Python的数据处理与统计实验室在过去几年迅速发展。

Pandas

处理数据最流行的实验室就是Pandas

Pandas快速、有效、灵活,并设计精良

下面给出一个简单例子

importpandasaspd

importscipyassp

data=sp.randn(5,2)# Create 5x2 matrix of random numbers for toy example

dates=pd.date_range('28/12/2010',periods=5)

df=pd.DataFrame(data,columns=('price','weight'),index=dates)

print(df)price weight2010-12-28 0.007255 1.1299982010-12-29 -0.120587 -1.3748462010-12-30 1.089384 0.6127852010-12-31 0.257478 0.1022972011-01-01 -0.350447 1.254644 df.mean()price 0.176616weight 0.344975

另一些有用的统计实验室

— 不同的统计进程

— Python中的机器学习 (sponsored by Google, among others)

— 贝叶斯数据分析

基于的贝叶斯数据分析

网络和图

Python也要许多研究图的实验室

著名的之一就是(http://networkx.github.io/)

标准的图形算法用于分析网络结构,等

图进程

等等

例如

它所产生的图如下

云计算

在云端的大规模服务器中运行Python代码将会变得越来越简单

非常棒的例子就是(https://www.continuum.io/anaconda-enterprise-notebooks)

也可见

The (Python, Java, PHP or Go)

并行过程

离开云计算选项,你可能想要考虑一下

The interface to Amazon’s EC2

GPU programming through , , or similar

另外一些进展

Python的科学编程中有许多有趣的进展

一些代表性例子如下:

— Python in your browser with code cells, embedded images, etc.

— Make Python run at the same speed as native machine code!

— a generalization of NumPy

— manage large data sets

— convex optimization in Python

进一步阅读

Browse some Python projects on

Have a look at people have shared on various scientific topics

Visit the

View some of the question people are asking about Python on

Keep up to date on what’s happening in the Python community with the 返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值