数据格式有哪几种_格式为数据的文件用什么打开_数据格式包括

武侠作家古龙曾经写过一本书叫《七种武器》,书中描述了长生剑、孔雀翎、碧玉刀等武器,而基于Python的数据武器远不止7种数据格式有哪几种,它是以一套数据科学开发栈的方式来呈现给大家的,如图1所示。

图1Python数据科学开发栈

图1中最核心的部分当然还是Python;第二层的Cython、NumPy、IPython、Jupyter Notebook为基于Python的程序交互运行、数值计算等提供了支持;第三层的SciPy、Matplotlib、Pandas、SymPy提供了基础的数据处理、科学计算、数据可视化、符号运算的支持;基于前面3层的支持,StatsModels、Scikit-learn、NetworkX、PyMC3等模块更进一步提供了统计分析、机器学习、网络分析、概率编程等的支持;最后第五层提供了各种不同应用领域的软件包,如用于生物分析领域、天文领域的biopython、Astropy,大数据方面的DASK,自动机器学习的TPOT,此外还有深度学习领域的Keras和Pytorch等。下面将选取部分软件包进行简单介绍。

1. Cython

Cython是用C语言实现Python,是目前应用最广泛的解释器。Python最新的语言特性都是在这个上面先实现,Linux、OS X等自带的也是这个版本,包括Anaconda里面用的也是Cython。Cython是官方版本加上对于C/Python API的全面支持,基本包含了所有第三方库支持,如NumPy、SciPy等。

2. NumPy

NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:

·一个强大的N维数组对象;

·广播功能函数;

·整合C/C++/FORTRAN代码的工具;

·线性代数、傅里叶变换、随机数生成等功能。

同时,NumPy内部解除了Python的PIL(全局解释器锁),运算效率极高,是大量机器学习框架的基础库。关于NumPy的更详细介绍请参考网站。

3. IPython

IPython是Interactive Python的简称,即交互式Python首码项目,作为一个增强的Python解释器,由Fernando Perez于2001年启动,并由此发展为一个项目。用Perez的原话来说,该项目致力于提供“科学计算的全生命周期开发工具”。如果将Python看作数据科学任务的引擎,那么IPython就是一个交互式控制面板。它比默认的python shell好用得多,支持变量自动补全、自动缩进、bash shell命令,同时IPython还内置了许多很有用的功能和函数,包括:

·强大的交互式shell;

·供Jupyter Notebooks使用的Jupyter内核;

·交互式的数据可视化工具;

·灵活、可嵌入的解释器;

·易于使用,高性能的并行计算工具。

关于IPython的更详细介绍请参考网站。

4. Jupyter

在2011年,IPython首次发布10年后,IPython Notebook被引入。这个基于Web的IPython接口把代码、文本、数学表达式、内联图、交互式图形、小部件、图形界面以及其他丰富的媒体集成到一个独立的可共享的Web文档中。该平台为交互式科学计算和数据分析提供了理想的门户。IPython已经成为研究人员、工程师、数据科学家、教师和学生不可或缺的工具。

几年后,IPython在科学界和工程界获得了不可思议的盛誉。Notebook开始支持越来越多的Python以外的编程语言。2014年,IPython开发者宣布了Jupyter项目,该项目旨在改进Notebook的实现并通过设计使其与语言无关。目前,Notebook支持3种主要科学计算语言:Julia、Python和R。至此,Jupyter成为一个完整生态系统,同时提供几种可供选择的Notebook界面(JupyterLab、Hydrogen等)、交互式可视化库、与Notebook兼容的创作工具。它的优点也显而易见,具体如下。

·所有内容聚合在一个地方。Jupyter Notebook是一个基于Web的交互式环境,它将代码、富文本、图像、视频、动画、数学公式、图表、地图、交互式图形、小部件以及图形用户界面组合成一个文档。

·易于共享。Notebook保存为结构化文本文件(JSON格式),这使得它们可以轻松共享。

·易于转换。Jupyter附带了一个特殊的工具nbconvert,可将Notebook转换为其他格式,如HTML和PDF。另一个在线工具nbviewer允许用户直接在浏览器中渲染一个公共可用的Notebook。

·独立于语言。Jupyter的架构与语言无关。客户端和内核之间的解耦使用任何语言编写内核成为可能。

·易于创建内核包装器。Jupyter为可以用Python包装的内核语言提供了一个轻量级接口。包装内核可以实现可选的方法,特别是自动代码补齐和代码检查。

·易于定制。Jupyter界面可用于在Jupyter Notebook(或其他客户端应用程序,如控制台)中创建完全定制的体验。

·自定义魔术命令的扩展。使用自定义魔术命令创建IPython扩展,使交互式计算变得更加简单。许多第三方扩展和魔术命令都存在,例如数据格式有哪几种,允许在Notebook中直接编写Cython代码的%%cython指令。

·轻松可重复实验。Jupyter Notebook可以帮助用户轻松进行高效且可重复的交互式计算实验。它可以让用户保存详细的工作记录。此外,Jupyter Notebook的易用性意味着用户不必担心可重复性,只需要在Notebook上做所有的互动工作,将它们置于版本控制之下,并定期提交。

·有效的教学和学习工具。Jupyter Notebook不仅是科学研究和数据分析的工具,而且是教学的好工具。

·交互式代码和数据探索。ipywidgets包提供了许多用于交互式浏览代码和数据的通用用户界面控件。

关于Jupyter的更详细内容请参考网站。

5. SciPy

SciPy是基于Python的NumPy构建的一个集成了多种数学算法和函数的Python模块。它为用户提供了一些高层的命令和类,SciPy在Python交互式会话中,大大增加了操作和可视化数据的能力。通过SciPy,Python的交互式会话变成了一个数据处理和系统原型设计环境,足以与Matlab、IDL、Octave、R-Lab和SciLab等系统相媲美。

更重要的是,在Python中使用SciPy,还可以同时用一门强大的语言——Python来开发复杂和专业的程序。用SciPy写科学应用,还能获得世界各地的开发者开发的模块的帮助。从并行程序到网络应用,再到数据库子例程和各种类,Python都已经有可用的模块。SciPy最强大的功能还是在于它的数学库。SciPy中提供的具体功能如表1所示。

表1SciPy中的核心包

数据格式有哪几种_数据格式包括_格式为数据的文件用什么打开

关于SciPy的更详细介绍,请参考网站。

6. Matplotlib

Matplotlib是利用Python实现的绘图套件,其中包含两个最重要的模块——pylab和pyplot。pylab已经几乎实现了在学术界最常用的软件Matlab所支持的绘图功能,或者可以说pylab其实就是Matlab的Python版本;而pyplot是将pylab再加上Python中有名的数学计算软件——NumPy,让使用者在使用pyplot时,可以直接调用NumPy的函数做计算后再以图形的方式呈现。Matplotlib功能十分强大,可以说是基于Python的图形可视化标准,利用Matplotlib,用户几乎可以完成任何图形的绘制,从传统的线图、条形图(如图2所示)、统计图(如图3所示)到图像、热图、等高图(如图4所示)等,同时用户还可以利用Matplotlib的子图功能实现多图绘制、定制图形(如图5所示)等。

格式为数据的文件用什么打开_数据格式有哪几种_数据格式包括

图2线图与条形图

格式为数据的文件用什么打开_数据格式包括_数据格式有哪几种

图3统计图

格式为数据的文件用什么打开_数据格式有哪几种_数据格式包括

图4图像、热图、等高图

数据格式有哪几种_数据格式包括_格式为数据的文件用什么打开

图5子图功能

当然,Python中的图形可视化工具不只有Matplotlib,还有专门进行统计图形可视化的Seaborn,交互图形可视化的Ploty、Bokeh等。

上述包的更详细介绍可以参考下列网站:

·Matplotlib: ;

·Seaborn: ;

·Ploty: ;

·Bokeh: 。

7. Pandas

Pandas为Python提供了高效的数据处理、数据清洗与整理的工具。关于Pandas的更详细介绍,请参考网站。

8. Scikit-learn

Scikit-learn的官方解释很简单:Machine Learning in Python,即用Python进行机器学习。Scikit-learn的优点也非常明显,具体如下。

·构建于现有的NumPy、SciPy、Matplotlib、IPython、Pandas之上,做了易用性的封装。

·简单且高效的数据挖掘、数据分析工具。

·对所有人开放,且在很多场景易于复用。

·基于BSD(Berkly Software Distribution)授权的开源实现。

Scikit-learn是一个非常强大的机器学习库,它包含了从数据预处理到训练模型的各个方面。Scikit-learn不仅提供了各种分类、聚类、回归、降维等经典算法的实现(如图6所示),同时还提供了机器学习中必需的数据预处理功能。使用Scikit-learn可以极大地节省开发人员编写代码的时间并减少程序代码量,使用户有更多的精力去分析数据分布、调整模型和优化超参数。

格式为数据的文件用什么打开_数据格式包括_数据格式有哪几种

图6Scikit-learn中的算法

关于Scikit-learn的更详细介绍请参考网站。

9. NetworkX

网络的研究是运筹学的一个经典而重要的分支,是很多领域研究的基础工具,在交通运输、经济管理和工业工程等都有广泛的应用。从广义上讲,我们都生活在一个由网络组成的世界里,各种网络组成了现下复杂的生活环境。故而要分析身边各个领域的规律,就需要对其组成基础——网络的特性进行分析。NetworkX作为Python的一个开源包,便于用户对复杂网络进行创建、操作和学习。利用NetworkX可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

关于NetworkX的更详细介绍请参考网站。

10. PyMC3

历史上,帮助在不确定性下做出决策的方法之一就是使用概率推理系统。而计算机运算能力的提高,相应的编程工具的出现,使得概率编程逐渐成为可能。概率编程允许在用户自定义的概率模型上进行自动贝叶斯推断。新的MCMC(Markoc Chain Monte Carlo)采样方法允许在复杂模型上进行推断。这类MCMC采样方法被称为HMC(Hamliltinian Monte Carlo),但是其推断需要的梯度信息有时候是无法获得的。而PyMC3是一个用Python编写的开源的概率编程框架,使用Theano通过变分推理进行梯度计算,并使用了C实现加速运算。不同于其他概率编程语言,PyMC3允许使用Python代码来定义模型。这种没有作用域限制的语言极大地方便了模型定义和直接交互。

关于PyMC3的更详细介绍请参考网站。

11. 数据科学领域中最新的一些Python包

近年随着数据科学、人工智能的快速发展,不断有新的基于Python的数据科学应用软件包出现,这里选取几个典型软件包进行简单介绍。

11.1. DASK

DASK是一个用于分析计算的灵活的并行计算库。因为DASK中的DataFrame与Pandas库中的相同,它的Array对象的工作方式类似于NumPy,能够并行化以纯Python编写。因此,通过只更改几行代码,用户可以快速对现有代码进行并行处理。

11.2. TPOT

自动化机器学习(Automatic Machine Learning,AML)是一种流水线(也称管道),它能够让用户自动执行机器学习(Machine Learning,ML)问题中的重复步骤,从而节省时间,让数据科学家专注于使其专业知识发挥更高价值的工作。实际上,AML是在Scikit-learn中应用的网格搜索的扩展,而不是迭代这些值预先定义的集合和其组合,它通过搜索方法、特征、变换和参数值来获得最佳解决方案。因此,AML网格搜索不需要在可能的配置空间上进行详尽的搜索。TPOT就是提供了自动化机器学习功能的包,它提供了像遗传算法这样的应用,可用来在某个配置中混合各个参数并达到最佳设置。数据科学家甚至还可以把DASK与TPOT结合起来,进行分布式的自动化机器学习。

11.3. Keras

Keras是一个高层神经网络应用程序接口(Application Programming Interface,API),由纯Python编写而成,用户可以选择Tensorflow、Theano以及CNTK后端。Keras开发的宗旨是为支持快速实验而生,能够把开发人员的想法迅速转换为结果。如果数据科学家需要完成简易和快速的原型设计,同时支持卷积神经网络、循环神经网络或二者的结合,以及CPU和GPU无缝切换,那么Keras将是最佳选择。

上述包的更详细介绍可以参考下列网站:

·DASK: ;

·TPOT: ;

·Keras: 。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注