0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

能够0.052秒打开100GB数据的一个高性能Python库

人工智能与大数据技术 来源:开源最前线 作者:开源最前线 2021-05-20 11:25 次阅读

当今的数据集越来越大,台式机的内存甚至都装不下,更不用说你的笔记本电脑了,尽管如此,在大数据时代,我们总是避免不了要使用大数据集,于是Vaex诞生了。

什么是Vaex?

Vaex是一个高性能Python库,可以可视化和探索大型表格数据集,它可以在 N 维网格上计算每秒超过十亿(10^9)个对象 / 行的统计信息,例如均值、总和、计数、标准差等, 磁盘上大小超过100GB的数据,用Vaex只需要0.052秒就可以打开。

使用直方图、密度图和三维体绘制完成可视化,从而可以交互式探索大数据。Vaex 使用内存映射、零内存复制策略获得最佳性能(不浪费内存)。

Vaex具有以下功能特性:

基于Python数据科学站(例如Panda、Scikit-Learn、arrow、xgboost、lightgbm),标准API易于采用。为Jupyter环境量身定制。

电脑运算,结合了内存映射,复杂的表达系统和快速核外算法。有效地可视化和探索大型数据集,并在一台机器上构建机器学习模型。

基准测试,每秒可视化10亿个样本。与标准实现相比,PCA转换速度提高了10倍,可在2分钟内处理10亿个样本。完全超出核心。

高效

Vaex不仅仅是Panda的替代品。尽管在执行诸如的表达式时,它具有类似于panda的API用于列访问np.sqrt(ds.x**2 + ds.y**2),但不会进行任何计算。而是创建一个vaex表达式对象,并在打印输出时显示一些预览值。

058df76e-b48d-11eb-bf61-12bb97331649.png

使用表达式系统,vaex仅在需要时执行计算。同样,数据也不必是本地的:表达式可以通过发送的方式,统计信息可以远程计算,这是vaex-server程序包提供的。

虚拟列

我们还可以将表达式添加到DataFrame中,从而生成虚拟列。虚拟列的行为类似于常规列,但不占用任何内存。Vaex在实列和虚列之间没有区别,

059f9dca-b48d-11eb-bf61-12bb97331649.png

如果表达式在运行时真的很复杂怎么办?通过使用Pythran或Numba,我们可以使用手动实时(JIT)编译来优化计算。

05d81e48-b48d-11eb-bf61-12bb97331649.png

远程数据帧甚至支持JIT版本的表达式,担心RAM不够?你还可以选择以RAM为代价挤出额外的性能。

05e23234-b48d-11eb-bf61-12bb97331649.png

可视化

进行有意义的绘图和可视化是了解数据的最佳方法。。但是,当你的DataFrame包含10亿行时,制作标准散点图不仅会花费很长时间,而且会导致毫无意义且难以理解的可视化。

让我们看看这些想法的一些实际例子。我们可以使用直方图可视化单个列的内容。

05ede08e-b48d-11eb-bf61-12bb97331649.png

可以将其扩展为两个维度,从而生成热图。我们可以像典型的热图那样简单地计算落入每个样本中,而不是计算平均值,取总和的对数或几乎任何自定义统计量。

我们甚至可以使用ipyvolume进行3维体积渲染。

原文标题:0.052秒打开100GB数据!这个Python开源库牛X了

文章出处:【微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    51

    文章

    4674

    浏览量

    83464
  • 大数据
    +关注

    关注

    64

    文章

    8644

    浏览量

    136585

原文标题:0.052秒打开100GB数据!这个Python开源库牛X了

文章出处:【微信号:TheBigData1024,微信公众号:人工智能与大数据技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿基于高性能RISC-V开源架构DAYU800通过OpenHarmony兼容性测评

    的重要环。 润鸿基于高性能RISC-V开源架构的DAYU800开发平台OpenHarmony兼容性证书 润鸿DAYU800开发平台基于平头哥
    发表于 12-14 17:33

    python控制已经打开的浏览器

    Python是一种广泛使用的编程语言,它具有强大的功能和丰富的库。其中一个功能就是控制已经打开的浏览器。这篇文章将详细介绍如何使用Python控制已经打开的浏览器,并提供一些实际的示例
    的头像 发表于 11-22 14:29 1430次阅读

    python如何打开gui界面

    Python打开GUI界面,可以使用多种库或框架,如Tkinter、PyQt、wxPython等。下面将详细介绍如何使用Tkinter创建一个GUI界面。在写文章时,建议参考以下提纲,将文章分成
    的头像 发表于 11-22 14:12 448次阅读

    python的终端窗口怎么打开

    在Windows系统上,你可以通过以下几种方法打开Python的终端窗口: 使用命令提示符打开终端窗口: 按下Win + R,打开“运行”对话框。 输入“cmd”,然后点击“确定”。
    的头像 发表于 11-22 11:23 2866次阅读

    MDK5打开MD4工程提示找不到芯片如何解决?

    一个国产芯片,有2工程文件,MDK4和MDK5。MDK5打开后,提示没有这个芯片的包,于是装了pack包,正常了。 用MDK5打开MDK4工程就提示没有芯片。于是在
    发表于 11-02 06:20

    为什么我的定时器一打开DS18B20温度就读取不了了 ?

    为什么我的定时器一打开,就影响了DS18B20了呢,温度就读取不了了
    发表于 11-01 07:02

    单芯片超过 100Gb,三星表示将挑战业界最高密度 DRAM 芯片

    三星电子在此次会议上表示:“从2023年5月开始批量生产了12纳米级dram,目前正在开发的11纳米级dram将提供业界最高密度。”另外,三星正在准备10纳米dram的新的3d构架,并计划为一个芯片提供100gb (gigabit)以上的容量。
    的头像 发表于 10-23 09:54 531次阅读

    MDK5建立的工程怎么直接用MDK4打开

    MDK5建立的工程怎么直接用MDK4打开
    发表于 10-16 06:09

    Brocade 100Gb/s SR4 QSFP28光收发器产品简介

    电子发烧友网站提供《Brocade 100Gb/s SR4 QSFP28光收发器产品简介.pdf》资料免费下载
    发表于 08-30 16:45 0次下载
    Brocade <b class='flag-5'>100Gb</b>/s SR4 QSFP28光收发器产品简介

    ARM性能入门(单机版)

    组优化的数学函数。 ·libastring-libc的子集,它是组优化的字符串函数。 ARM性能使用OpenMP跨多个BLAS、LA
    发表于 08-25 06:36

    Labvilew创建ACCESS数据库

    本帖最后由 1281788316 于 2024-4-19 13:52 编辑 使用labview2018打开
    发表于 08-05 21:44

    HLS-1Hin人工智能训练系统

    了32GB HBM2内存和10100GbE RoCEv2 RDMA端口。 HLS-1H接口为2x16 PCle Gen4,可连接到外部主机服务器,以及多达40×100Gb以太网链路(
    发表于 08-04 06:06

    智能网卡简介及其在高性能计算中的作用

    实现智能网卡和本地 GPU 之间的直接点对点 (P2P) 通信。FpgaNIC的另一个特点是它提供100Gb硬件网络传输能力。这意味着它可以与远程GPU建立高速网络通信,从而实现分布式系统的高效数据
    发表于 07-28 10:10

    耗时5月,我做了高性能的开发板

    原作者 @ logicworld 本项目开源主要目的是帮助想学ARM高速电路的小伙伴们,学会自己做一个ARM开发板。教程从最初的“需求分析”直到成功实现“软硬件联调”,就算是0基础的硬件小白
    发表于 06-09 09:36

    网络工程师学Python-文件打开

    Python中,可以使用open()内置函数打开文件,以执行一系列文件的操作。在本文中,将介绍Python打开文件的基础知识及常用的打开
    的头像 发表于 04-27 09:14 428次阅读