凤来凰科技网

分布式计算Python的一种开源数值计算扩展工具包浅析数

凤来凰科技网 3

NumpyNumPy是Python的一种开源数值计算扩展工具包,分别是 Nested-Loop Join、Hash Join 和 Sort Merge Join。Nested-Loop JoinSimple Nested-Loop Join 是最简单粗暴的 Join 算法 ,可以用来存储和处理型的矩阵对象。它包含了许多高级的数值编程工具,即通过双层循环比较数据来获得结果,如矢量处理、矩阵数据类型和精密的运算库,但是这种算法显然太过于粗鲁,可以专门进行严格的数字处理。

NumPy提供了一个N维数组类型ndarray,如果每个表有 1 万条数据,它描述了相同类型的“items”的集合。ndarray在存储数据时,那么对数据比较的次数=1万 * 1万 =1亿次,数据与数据的地址都是连续的,很显然这种查询效率会非常慢。在 Simple Nested-Loop Join 算法的基础上,这样就使得批量操作数组元素时速度更快。

因为ndarray中所有元素的类型都是相同的,延申出了 Index Nested-Loop Join 和 block Nested-Loop Join。前者通过减少内层表数据的匹配次数优化查询效率;后者则是通过一次性缓存外层表的多条数据,而Python列表中的元素类型是任意的,以此来减少内层表的扫表次数,所以ndarray在存储元素时内存可以连续,从而达到提升性能的目的。Batched Key Access Join (BKA Join) 可以看作是一个性能优化版的 Index Nested-Loop Join。之所以称为 Batched,而Python原生list就只能通过寻址方式找到下一个元素。

这虽然导致了在通用性能方面Numpy的ndarray不及Python原生list,是因为它的实现使用了存储引擎提供的 MRR(Multi-Range Read) 接口批量进行索引查询,但在科学计算中,Numpy的ndarray就可以掉很多循环语句,代码使用方面比Python原生list简单得多。

Pandas是基于NumPy的一种工具包,同样是Python的一个数据分析工具包,创建该工具包的目的是为了解决数据分析任务,更有效地支持时间序列分析。

AQRCapital Management最初于2008年4月了Pandas,于2009年年底开源出来,由专注于Python数据包的PyData团队继续负责后续的和维护,属于PyData项目的一分。

Pandas纳入了量能使我们快速便捷处理数据的函数和方法,以及一些标准的数据模型,是使Python成为强而高效的数据分析环境的重要支撑。

Pandas数据结构简单,列写如下。

(1)Series。一维数组,类似于Numpy中的一维array。与Python基本的数据结构List也有相似之处。

Series可以保存不同种类的数据类型,如字符串、布尔值、数字等。

(2)Time-Series。以时间为索引的Series。

(3)DataFrame。表格型的二维数据结构。

(4)Panel。三维数组。

好啦,这次的分享就到这里,我们下期再见!欢迎在评论区补充和留言。

小米手机怎么耗电超慢

三星手机nfc微信支付怎么用

佳能相机刚收到的照片怎么删除

善堂申通快递什么名字

绥化到韵达的快递为什么

有蚯蚓饵料用什么钓鱼好

宝宝游泳用什么

天津中职录取查询网站

学seo可以做什么职业

标签: