python不擅长的领域_Python是不是被严重高估了?

个人感觉Python的火主要由于其应用广泛,对我来说属于万金油一样的存在。

财经类科研常用的数据处理和分析软件有SAS、Stata、R、MATLAB等。他们各自有自己擅长的领域:SAS的两大优势是直接在硬盘上操作,以及与SQL的融合。前者适用于处理数据超过内存的情况(虽然dask也可以做到,但不如SAS方便),后者采用SQL语句可以方便地merge不同数据表格(虽然sqlite3也可以做到,但对函数的支持不如SAS SQL方便)。缺点是不够flexible,对数值计算的支持不够好(也是懒得学SAS/IML),比起在内存中操作,直接操作硬盘的数据速度也慢一些。

Stata可以方便地做各种计量模型,语句简洁。比如一些python要写很长的操作,Stata只需要很短的命令就可以实现。很多计量模型Stata有成型的命令可以直接调用,而python这方面弱一些,可能需要自己写命令。很多人嫌弃Stata不够flexible,但其实Stata底层的Mata语言功能强大,速度快,可以随意定义函数(甚至有些C-style),但拓展包不足,调试不方便。

R好久不用了,之前学着本来是为了替代Stata的,但后来发现缺少一些我需要的计量模型,于是就放弃了。它本身和Python有一点像。

MATLAB做矩阵和数值运算超级快,其他方面略逊色不够方便。

Python虽然不至于博采众家之长而严格优于这些软件,但也确实很大程度上综合了这些软件的功能,并且还有额外的加成。比如在下面的情境中我会用python代替这些软件:SAS和Stata缺少一些函数,又懒得学SAS/IML+嫌弃Mata调试很不友好,可以用python方便地自己写。

一些可以通过并行运算加快速度的操作,在Stata或SAS中无法方便地实现。在python中就很方便。

网络爬虫方面自不必说,python比其他这些软件方便多了。

暂时想到这些

Python也确实有很多缺点,比如速度慢等,代码冗长等。但好在Python的拓展性足够强,总能找到一些方法来部分地弥补这些缺点:比如做rolling-window regression,数据多的时候计算量很大。用Python可以通过Numba方便地加速,再加上joblib实现并行,速度能快很多倍。

再比如pandas的一些语句与Stata相比太冗长了。但自己完全可以把常用操作写成函数,每次调用函数即可。

对于数据大于内存的情况,可以用dask解决(或部分解决)。

暂时想到这些

当然了,也确实有些地方无法用python很好地完成,所以我最终的选择是搭配SAS、python和Stata。好钢用在刀刃上。比如先用SAS处理大的数据表、合并数据表,最后得到了比较小的数据之后再用Python或者Stata。比如需要的计量模型比较专业,最后就用Stata而不用python。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值