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数据分析库的更多相关文章

  1. 小白学 Python 数据分析(15):数据可视化概述

    人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):P ...

  2. 目前比较流行的Python量化开源框架汇总(交易+风险分析工具)

     注:点击框架名称通往Github talib talib的简称是Technical Analysis Library,主要功能是计算行情数据的技术分析指标 numpy 介绍:一个用python实现的 ...

  3. 量化金融策略开源框架:QUANTAXIS

    简介: QUANTAXIS量化金融策略框架,是一个面向中小型策略团队的量化分析解决方案,是一个从数据爬取.清洗存储.分析回测.可视化.交易复盘的本地一站式解决方案. QUANTAXIS量化金融策略框架 ...

  4. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等

    Java 中15种锁的介绍 Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等,在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类 ...

  5. 量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python)(转)

    量化交易中VWAP/TWAP算法的基本原理和简单源码实现(C++和python) 原文地址:http://blog.csdn.net/u012234115/article/details/728300 ...

  6. Java中15种锁的介绍

    作者:搜云库技术团队 原文:https://segmentfault.com/a/1190000017766364 1. Java 中15种锁的介绍 在读很多并发文章中,会提及各种各样锁如公平锁,乐观 ...

  7. 15个流行的python框架

    Django: Python Web应用开发框架 Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django是走大而全的方向,它最出名的是其全自动化的管理后台: ...

  8. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  9. python数据分析中常用的库

    Python是数据处理常用工具,可以处理数量级从几K至几T不等的数据,具有较高的开发效率和可维护性,还具有较强的通用性和跨平台性,这里就为大家分享几个不错的数据分析工具,需要的朋友可以参考下 Pyth ...

随机推荐

  1. slf4j日志只输出到控制台,没输出到日志文件

    最近使用SLF4J遇到了一个比较头疼的坑,日志输出到控制台没有问题,但是始终没有输出到日志文件.无论怎麽修改日志配置,始终是老样子. 有一种绝望,是各种百度.google却还是解决不了问题..直到我在 ...

  2. 【sqli-labs】 less26a GET- Blind based -All you SPACES and COMMENTS belong to us -String-single quotes-Parenthesis(GET型基于盲注的去除了空格和注释的单引号括号注入)

    这个和less26差不多,空格还是用%a0代替,26过了这个也就简单了 ;%00 可以代替注释,尝试一下 order by 3 http://192.168.136.128/sqli-labs-mas ...

  3. String类练习统计一个字符串中大小写字母及数字字符个数

    public class StringPractice { public static void main(String[] args) { //创建一个文本扫描器 Scanner sc = new ...

  4. 爬虫系列(二) Chrome抓包分析

    在这篇文章中,我们将尝试使用直观的网页分析工具(Chrome 开发者工具)对网页进行抓包分析,更加深入的了解网络爬虫的本质与内涵 1.测试环境 浏览器:Chrome 浏览器 浏览器版本:67.0.33 ...

  5. Python语言简介

    一.Python语言发展史 1989年吉多·范罗苏姆(Guido van Rossum)中文外号“龟叔”,圣诞节期间开始编写Python语言的编译器. Python这个名字,来自Guido所挚爱的电视 ...

  6. 世界对一名颓废者的惩罚——SDOI2019R1游记

    在清明节前,我仿佛已经成为了一名退役选手 一个月做五道题,10天不碰电脑 终日只知颓废 SDOI2019,希望能引起我的警戒吧 Day 0 不说了. 晚上做了三道斯波题(包括去年多省联考的D1T1), ...

  7. Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)

    哎呀大水题..我写了一个多小时..好没救啊.. 数论板子X合一? 注意: 本文中变量名称区分大小写. 题意: 给一个\(n\)阶递推序列\(f_k=\prod^{n}_{i=1} f_{k-i}b_i ...

  8. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)

    题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...

  9. [MySQL]--查询性能分析工具-explain关键字

    explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上expl ...

  10. 纪录:Solr6.4.2+Flume1.7.0 +morphline+kafka集成

    当前大多数企业版hadoop的solr版本都还停留在solr4.x,由于这个版本的solr本身的bug较多,使用起来会出很多奇怪的问题.如部分更新日期字段失败的问题. 最新的solr版本不仅修复了以前 ...