在量化金融中15个最流行的Python数据分析库
Python是当今应用最广泛的编程语言之一,以其效率和代码可读性著称。作为一个科学数据的编程语言,Python介于R和java之间,前者主要集中在数据分析和可视化,而后者主要应用于大型应用。这种灵活性意味着Python可以作为一个单一工具来汇集整个工作流。也就是说Python本身是被允许扩充的,并非所有的特性和功能都集成到语言核心中。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。
Python往往是开发人员的首选。他们往往需要在工作中应用统计技术或数据分析,或者需要与Web应用程序交互。特别是,Python在机器学习中的地位,它的机器学习库和灵活性的结合使得Python非常适合开发复杂的模型并可以直接在应用中直接使用。
Python的最大特色之一是其极广泛的程序库(library)。程序库(library)是一个可供使用的各种标准程序、子程序、文件以及它们的目录等信息的有序集合。一组有效的库可以使开发人员在不重写多行代码的情况下编写复杂多任务代码。在本文中,笔者将向您介绍一些在量化金融中最流行的数据分析相关的库。
基本数据分析库文件
这些是将Python从通用编程语言转换为强大的数据分析和可视化工具的基本库,是建立专业化工具的基础。
NumPy是Python中科学计算的基础库,许多库使用NumPy数组作为它们的基本输入和输出。简而言之,NumPy为多维数组和矩阵引入对象,允许开发人员在对这些数组矩阵上执行高级数学和统计功能时尽可能地减少代码的书写。SciPy是在NumPy的基础上添加一系列算法和高级指令来构建和可视化数据。这个软件包括计算积分函数,求解微分方程,优化等等。Pandas增加了用于金融、统计学、社会科学和工程的实际数据分析的数据结构和工具。Pandas可以很好地处理不完整的、混乱的和未标记的数据(即在现实世界中可能遇到的数据类型),并提供用于成形、合并、改造和切片数据集的工具。IPython扩展了Python的交互式解释器的功能,它提供了一个增强的交互式外壳程序,增加了富媒体(Rich Media)、程序脚本、制表符和历史指令的检索。它也作为你的程序的一个嵌入式的解释器,用于程序调试。如果你曾经使用过Mathematica或Matlab,那你应该会对IPython感到满意。matplotlib是创建2D绘图和图形的标准Python库。它的级别很低,这意味着它比起那些更高级的库需要更多的命令来生成漂亮的图形。然而,matplotlib具有灵活性,只要有了足够的命令,你就可以用matplotlib制作任何类型的图形。
机器学习库
机器学习位于人工智能和统计分析的交叉点。通过使用真实数据来训练计算机,我们能够创造出更精确和更复杂的预测算法。下面的库能够赋予Python处理多个机器学习任务的能力,从执行基本的回归运算到复杂的神经网络。
Scikit-learn在NumPy和SciPy上为普通的机器学习和数据挖掘任务添加了一组算法,包括聚类、回归和分类。作为一个程序库,scikit-learn有很多优势。更重要的是,它是一个经过精心提炼的库,这意味着开发者不必在同一算法的不同版本之间进行选择。它的强大和易用性使它深受许多数据密集型初创企业的欢迎,包括Evernote和Spotify等。Theano使用NumPy类似的语法来优化数学表达式。Theano与众不同之处在于,它利用了计算机的GPU,以使数据密集型计算比单独使用CPU快了近100倍。Theano的速度使得它对于深入学习和其他计算复杂的任务特别有利。TensorFlow在机器学习中非常有名,由谷歌开发,是一个训练神经网络的框架。TensorFlow使用一个多层节点系统,允许您快速设置、训练和部署具有大型数据集的人工神经网络。这使得谷歌能够识别照片中的对象,或者在语音识别应用程序中理解口语单词。笔者强烈推荐。
数据挖掘和自然语言处理库
对于许多企业来说,他们所需要的数据不是被动收集的,而是必须从文档或网页中提取出来的。下面的工具是为各种相关任务设计的,从网站上挖掘有价值的信息,将自然语言转换成可以使用的数据。
Scrapy用于创建蜘蛛机器人系统爬行和提取结构化数据,如价格、联系信息和URL。Scrapy最初设计用于网络信息挖掘,也可以从API中提取数据。NLTK是为自然语言处理(NLP)而设计的一套库。NLTK的基本功能允许您标记文本,识别实体,并显示解析树,这些语句就像语句图,揭示了词性及其依赖性。从而你可以做更复杂的事情,如情感分析和自动摘要。Pattern结合了Scrapy和NLTK的功能,用于网页信息挖掘、NLP、机器学习和网络分析的解决方案。它的工具包括网络爬虫;谷歌、Twitter和维基百科的API;以及文本分析算法,如解析树和情感分析,只需几行代码就可以执行。
绘图与可视化库
如果不能清晰地传达给其他人,那么最好的和最复杂的分析是没有意义的。接下来的这些库建立在Matplotlib上,不管你试图做什么样的分析,都能使你轻松地创建更多的视觉上能引人注目和复杂的图形、图表和地图。
Seaborn是一个基于Matplotlib上流行的可视化库。首先你会发现,它的默认样式比Matplotlib更加复杂。除此之外,Seaborn是一个更高级的库,意味着生成某些类型的图表更容易,包括时间序列图等。Bokeh在现代Web浏览器中使用JavaScript小部件实现交互式、可缩放的绘图。Bokeh的另一个很好的特点是它有三个层次的接口提供给程序开发人员,从高层次的抽象,让您快速生成复杂的情节,到一个低级别的视图,提供最大的灵活性。Basemap通过MatMattLIB的坐标将简单地图添加到MatPuttLB上,并将它们应用到超过25个不同的投影上。库叶进一步在BaseMax上允许创建交互式Web地图,类似于由Bokeh创建的JavaScript部件。NetWorkX允许您创建和分析图表和网络。它能工作于标准和非标准数据格式,这使得它特别有效和具有可扩展性。所有这些都使得NetWorx特别适合于分析复杂的社交网络。
以上列举的这些库是Python开发人员经常使用的。笔者总结归纳在这里希望能帮到大家。
此文系作者原创,如需转载,请注明出处,谢谢!
感谢您的阅读!
在量化金融中15个最流行的Python数据分析库的更多相关文章
- 小白学 Python 数据分析(15):数据可视化概述
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...
- 目前比较流行的Python量化开源框架汇总(交易+风险分析工具)
注:点击框架名称通往Github talib talib的简称是Technical Analysis Library,主要功能是计算行情数据的技术分析指标 numpy 介绍:一个用python实现的 ...
- 量化金融策略开源框架:QUANTAXIS
简介: QUANTAXIS量化金融策略框架,是一个面向中小型策略团队的量化分析解决方案,是一个从数据爬取.清洗存储.分析回测.可视化.交易复盘的本地一站式解决方案. QUANTAXIS量化金融策略框架 ...
- Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
Java 中15种锁的介绍 Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等,在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类 ...
- 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)(转)
量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python) 原文地址:http://blog.csdn.net/u012234115/article/details/728300 ...
- Java中15种锁的介绍
作者:搜云库技术团队 原文:https://segmentfault.com/a/1190000017766364 1. Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观 ...
- 15个流行的python框架
Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台: ...
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...
- python数据分析中常用的库
Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...
随机推荐
- 学习廖雪峰的Python教程之Python基础
一.缩进 编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行. 以#开头的语句是注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释.其他每一行都是一个语句,当语句 ...
- Day 18 hashlib,logging模块
hashlib 模块 作用:hash是一种算法,主要提供SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法,该算法接受传入的内容,经过运算得到一串hash值 特点: 1.只要 ...
- Linux基础:seq命令总结
本文只总结一些常用的用法,更详细的说明见man seq和 seq --help. seq命令 seq命令用于输出数字序列. 语法格式 Usage: seq [OPTION]... LAST or: s ...
- Wireshark 如何捕获网络流量数据包
转自:http://www.4hou.com/web/7465.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutia ...
- echarts在地图上绘制散点图(任意点)
项目需求:在省份地图上绘制散点图,散点位置不一定是哪个城市或哪个区县,即任意点 通过查询官网文档,找到一个与需求类似的Demo:https://www.echartsjs.com/gallery/ed ...
- [POI2010] Intelligence test
yyl说是用链表O(n)做 但是并脑补不出来. 发现可以用个vector记录一下每个数出现的位置,然后对于每个新序列就二分一下,找下一个数出现的离当前位置最近的位置,更新一下当前位置即可. 时间复杂度 ...
- 修改Xorg.conf配置显示分辨率
修改Xorg.conf是件简单的事,配置文件结构简单,也没有复杂的语法,但是一但配置失败,后果是比较 严重的,,所以强烈建议每次修改之前做好备份工作. Xorg.conf一般位于/etc/X11/xo ...
- UDP bind() IP和prot
http://blog.csdn.net/qq_28171461/article/details/69523604
- [bzoj3123][Sdoi2013]森林_主席树_启发式合并
森林 bzoj-3123 Sdoi-2013 题目大意:给定一片共n个点的森林,T个操作,支持:连接两个不在一棵树上的两个点:查询一棵树上路径k小值. 注释:$1\le n,T \le 8\cdot ...
- 不错的题目-n个数连接得到的最大值
这道题目还是很不错的 <[字符串排序]n个数连接得到最小或最大的多位整数> 题目 描述:设有n个正整数,将它们依次连成在一排,组成一个多位数,现在要求可能组成的多位数中最大的多位数是什么? ...