在数据科学计算、机器学习、以及深度学习领域,Python 是最受欢迎的语言。Python 在数据科学领域,有非常丰富的包可以选择,numpy、scipy、pandas、scikit-learn、matplotlib。

但这些库都仅仅受限于单机运算,当数据量很大时,比如50GB甚至500GB的数据集,这些库的处理能力都显得捉襟见肘,打开都很困难了,更别说分析了。本文向大家介绍几个好用的加速工具,可以很好地补齐现有 PyData 技术栈的短板。有了这些工具,即便是处理亿级数据你也可以应对自如。

Vaex

Vaex是一个开源的 DataFrame 库,对于和你硬盘空间一样大小的表格数据集,它可以有效进行可视化、探索、分析乃至实践机器学习。Vaex采用了内存映射、高效的外核算法和延迟计算等概念来获得最佳性能(不浪费内存),一旦数据存为内存映射格式,即便它的磁盘大小超过 100GB,用 Vaex 也可以在瞬间打开它(0.052 秒)。

项目地址:https://github.com/vaexio/vaex

官方文档:https://vaex.readthedocs.io/en/latest/

Mars

Mars 是numpy 、 pandas 、scikit-learn的并行和分布式加速器,由阿里云高级软件工程师秦续业等人开发的一个基于张量的大规模数据计算的统一框架,目前它已在 GitHub 上开源。该工具能用于多个工作站,而且即使在单块 CPU 的情况下,它的矩阵运算速度也比 NumPy(MKL)快。

项目地址:https://github.com/mars-project/mars

官方文档:https://docs.mars-project.io

Dask

Dask是一个并行计算库,能在集群中进行分布式计算,能以一种更方便简洁的方式处理大数据量,与Spark这些大数据处理框架相比较,Dask更轻。Dask更侧重与其他框架,如:Numpy,Pandas,Scikit-learning相结合,从而使其能更加方便进行分布式并行计算。

项目地址:https://github.com/dask/dask

官方文档:https://docs.dask.org/en/latest/

CuPy

CuPy 是一个借助 CUDA GPU 库在英伟达 GPU 上实现 Numpy 数组的库。基于 Numpy 数组的实现,GPU 自身具有的多个 CUDA 核心可以促成更好的并行加速。CuPy 接口是 Numpy 的一个镜像,并且在大多情况下,它可以直接替换 Numpy 使用。只要用兼容的 CuPy 代码替换 Numpy 代码,用户就可以实现 GPU 加速。

项目地址:https://github.com/cupy/cupy

官方文档:https://docs-cupy.chainer.org/en/stable/

python中四种方法提升数据处理的速度的更多相关文章

  1. PHP学习笔记,curl,file_get_content,include和fopen四种方法获取远程文件速度测试.

    这几天在做抓取.发现用PHP的file_get_contents函数来获取远程文件的过程中总是出现失败,并且效率很低下.所以就做了个测试的demo来测试下PHP中各种方法获取文件的速度. 程序里面使用 ...

  2. Python中四种运行其他程序的方式

    原文地址:http://blog.csdn.net/jerry_1126/article/details/46584179 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在 ...

  3. Python黑科技 | Python中四种运行其他程序的方式

    在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程,可以使用win32proc ...

  4. python中两种方法实现二分法查找,细致分析二分法查找算法

    之前分析了好多排序算法,可难理解了呢!!(泣不成声)这次我要把二分查找总结一下,这个算法不算难度特别大,欢迎大家参考借鉴我不喜欢太官方的定义,太晦涩的语言,让人看了就头晕.我希望加入我自己的理解,能帮 ...

  5. Python中四种样式的99乘法表

    1.常规型. #常规型 i=1 while i<=9: j=1 while j<=i: print(''%d*%d=%2d''%(i,j,i*j),end='') i+=1 #等号只是用来 ...

  6. python QQTableView中嵌入复选框CheckBox四种方法

    搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...

  7. IOS中Json解析的四种方法

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...

  8. iOS-UITextField中给placeholder动态设置颜色的四种方法

    思路分析: 0.自定义UITextField 1.设置占位文字的颜色找-->placeholderColor,结果发现UITextField没有提供这个属性 2.在storyboard/xib中 ...

  9. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  10. jsp中四种传递参数的方法

    jsp中四种传递参数的方法如下: 1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="i ...

随机推荐

  1. Django: 后台常用操作

    指定状态码 return JsonResponse(data, status=201) Djano删除数据库 删除对应数据库后,删除对应文件 删除对应的记录 Django后台管理 创建超级管理员 py ...

  2. jQuery真伪数组转换

    // 真数组转伪数组 [].push.apply(obj,arr); // 伪数组转真数组 [].slice.call(obj);

  3. nacos系列:简介和安装

    目录 版本选择 安装 windows安装 centos安装 mysql方式存储 官网:https://nacos.io github:https://github.com/alibaba/nacos ...

  4. CutLER:一种用于无监督目标检测和实例分割的方法

    本文分享自华为云社区<CutLER:一种用于无监督目标检测和实例分割的方法>,作者:Hint. 目标检测是计算机视觉中的一种重要任务,使AI系统感知.推理.理解目标.训练定位模型需要特别的 ...

  5. Qt开发思想探幽]QObject、模板继承和多继承

    @ 目录 [Qt开发探幽]QObject.模板继承和多继承 1. QObject为什么不允许模板继承: 2.如果需要使用QObject进行多继承的话,子对象引用的父类链至多只能含有一个QObject ...

  6. 《SQL与数据库基础》23. 读写分离

    目录 读写分离 一主一从 准备 配置 双主双从 准备 配置 主库配置 从库配置 从库关联主库 主库相互复制 双主双从读写分离 本文以 MySQL 为例.以 MyCat 数据库中间件为例,通过 MyCa ...

  7. Redis的五大数据类型的数据结构

    概述   Redis底层有六种数据类型包括:简单动态字符串.双向链表.压缩列表.哈希表.跳表和整数数组.这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表.压缩列表 ...

  8. Conda 命令深入指南

    Conda 命令深入指南 Conda 是一个功能强大的包管理系统,允许您为不同的项目创建和管理隔离的环境,从而更轻松地处理不同的依赖项集. 安装 可以按照 Conda 官方网站 (https://co ...

  9. CentOS 8 无痕升级到 Rocky Linux

    CentOS 8 无痕升级到 Rocky Linux 1.升级当前系统 dnf upgrade -y 2.重启当前系统: reboot 3.下载脚本: CentOS 8 到 Rocky Linux 8 ...

  10. [Python] #!/usr/bin/python 与 #!/usr/bin/env python 的区别

    区别是什么呢? #!/usr/bin/python 系统在执行这个脚本的时候, 调用固定路径的python解释器 #!/usr/bin/env python 防止用户没有吧py安装到usr/bin目录 ...