可以加速 Pandas(即使在 CPU 环境中)而无需编码...... FireDucks

引言

使用 Pandas 处理大量数据时,是否曾因处理时间过长而感到沮丧?
显然,一个库已经发布,可以在不改变现有代码的情况下加速 Pandas。
由 NEC Laboratories 发布的名为 FireDucks 的库的 Beta 版本可以免费使用。
而且,即使在CPU环境下它似乎也更快。 详情请参阅网站。

这是测试版,但是免费的,这太棒了!                              
赶紧去看看吧。

环境

有两种使用 FireDucks 的方法:“隐性导入”和“显式导入”。
对于“import hook”,可以通过在启动 python 时指定选项来运行它,而无需重写代码。 另一方面,对于“显式导入”,请在导入语句中显式指定fireducks。

python3 -m fireducks.imhook your_script.py
# import pandas as pd
import fireducks.pandas as pd

这次,我们将使用“显式导入”来与Google Collaboration进行验证。

简单验证

让我们使用标准泰坦尼克数据进行验证。
会尝试测量groupby()方法的效果,但由于数据量很小,将循环它10,000次并测量它。
操作环境是Google Collaboration,并且使用可能会产生影响的CPU资源。

正常的 Pandas 环境

import pandas as pd
import time# 直接读取Github上发布的数据
url = 'https://raw.githubusercontent.com/pandas-dev/pandas/master/doc/data/titanic.csv'
titanic = pd.read_csv(url)start = time.time()for i in range(10000):titanic.groupby(["Sex", "Pclass"])["Fare"].mean()elaps = time.time() - start
print(elaps)

在这里插入图片描述大约用了 9.5 秒。

FireDucks环境

  • 安装fireducks
!pip install fireducks
  • 验证 FireDucks 中的处理时间
import fireducks.pandas as pd2
url = 'https://raw.githubusercontent.com/pandas-dev/pandas/master/doc/data/titanic.csv'
titanic2 = pd2.read_csv(url)import timestart = time.time()for i in range(10000):titanic2.groupby(["Sex", "Pclass"])["Fare"].mean()elaps = time.time() - start
print(elaps)

在这里插入图片描述大约需要 3.4 秒,大约快了三倍。
太奇妙了! 。

在处理大量数据时,它似乎非常有效。

综上所述

如果它是免费且易于使用且无需更改代码的,我认为没有理由不使用它。
根据官网介绍,并不是所有的pandas方法都更快,但是兼容的方法数量会逐渐增加(FireDucks不支持的方法会在内部转换为常规的pandas方法)。(既然被调用了,就不’这并不意味着它不能使用,它只是似乎没有加速。)

希望今后继续提供支持(希望以后继续免费提供!)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2660759.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈WPF之控件模板Control Template和数据模板Data Template

WPF不仅支持传统的Windows Forms编程的用户界面和用户体验设计,同时还推出了以模板为核心的新一代设计理念。在WPF中,通过引入模板,将数据和算法的“内容”和“形式”进行解耦。模板主要分为两大类:数据模板【Data Template】和控…

linux cat命令增加-f显示文件名功能

在使用cat命令配合grep批量搜索文件内容时,我仅仅能知道是否搜索到,不知道是在哪个文件里找到的。比如cat ./src/*.c | grep full_write,在src目录下的所有.c文件里找full_write,能匹配到所有的full_write,但是不知道它们分别在哪些文件里。于…

【八】【C语言\动态规划】1567. 乘积为正数的最长子数组长度、413. 等差数列划分、978. 最长湍流子数组,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

黑客攻击服务器之后如何清除痕迹?如何进行伪装和逃脱追踪?

黑客攻击服务器之后如何清除痕迹?如何进行伪装和逃脱追踪?附完整执行代码。 在攻击结束后,如何不留痕迹的清除日志和操作记录,以掩盖入侵踪迹,这其实是一个细致的技术活。你所做的每一个操作,都要被抹掉;你所上传的工具,都应该被安全地删掉。 黑客的一次攻击行为,主…

HarmonyOS应用开发-仿微信UI实现

在本篇博客中,介绍一个仿微信的 HarmonyOS 应用,应用包括微信的首页、通讯录、发现、我的页面,以及聊天界面。 一、先上效果图: 二、代码解读 以聊天界面为例,代码如下(解读在代码下面)&#…

【华为数据之道学习笔记】7-3基于物理世界的“硬感知”能力

“硬感知”能力的分类 数据采集方式主要经历了人工采集和自动采集两个阶段。自动采集技术仍在发展中,不同的应用领域所使用的具体技术手段也不同。基于物理世界的“硬感知”依靠的就是数据采集,是将物理对象镜像到数字世界中的主要通道,是构建…

STM32F407-14.3.10-表73具有有断路功能的互补通道OCx和OCxN的输出控制位-1x000-1x111(总结)

基于表73中,主输出使能(MOE1)的8种OCx与OCxN的输出状态及波形图,已经单独整理输出8篇文章,方便需要时单独回查。 主输出使能时(MOE1)总结如下 通过表73中可得以下结论 1、控制位1x000与1x100…

ffmpeg两种windows版本区别说明

版本一 必须拷贝exe和dll文件才能使用,如果缺少dll则exe不正正常执行 如果缺少dll ,执行 exe会报错如下 版本2 直接拷贝exe就能使用,没有依赖的环境

test perf-03-性能测试之 Gatling 使用入门官方教程

quick start 快速入门 学习 Gatling 的概念,使用录制器创建可运行的 Gatling 仿真。 介绍 在这一部分,我们将使用 Gatling 进行负载测试一个简单的云托管的 Web 服务器,并向您介绍 DSL(领域特定语言)的基本要素。 …

机器学习 -- 数据预处理

系列文章目录 未完待续…… 目录 系列文章目录 前言 一、数值分析简介 二、内容 前言 tips:这里只是总结,不是教程哈。 以下内容仅为暂定,因为我还没找到一个好的,让小白(我自己)也能容易理解&#x…

git 如何将某个分支的某个提交复制到另外一个分支

请直接去看原文: 原文链接:git 如何将某个分支的某个提交复制到另外一个分支_gitlab里面的markdown文件可以复用其他分支的吗-CSDN博客 --------------------------------------------------------------------------------------------------------------------------------…

防火墙什么用,软件防火墙与硬件防火墙有什么不一样

防火墙是一种网络安全技术,通过有机结合各类用于安全管理与筛选的软件和硬件设备,在计算机网络的内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息的安全性。 防火墙的作用的详细说明: 1.访问控制:防火…

SpingBoot的项目实战--模拟电商【2.登录】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.功能需求 二.代码编写 …

如何使用mac电脑,1、使用快捷命令打开访达,2、使用终端命令创建文件,3、使用命令打开创建的文件,并且在vscode中打开

如何使用mac电脑 1、使用快捷命令打开访达 optioncommand空格键 快速进入访达 shiftcmmandn 创建一个空目录 2、使用终端命令创建文件 2.1进入文件夹 在终端页面输入“cd /Users/yunf/Desktop/”并按回车键(此时进入到桌面文件夹,如果需要进入到其它…

算法分析-回溯算法-求解N皇后问题

一.题目需求 n皇后问题是一道比较经典的算法题。它研究的是将n个皇后放置在一个nn的棋盘上,使皇后彼此之间不相互攻击。 即任意两个皇后都不能处于同一行、同一列或同一斜线上。 二.算法思想 1.构建棋盘 可以用一个nn列表来表示棋盘,设皇后所在的位…

Vue 问题解决

一、问题:TypeError: (0 , _message.default) is not a function 当没有default时,在其他页面import引入的时,必须加{}。 二、问题:Vue前端页面的表格数据总是一行一行的显示 使用Async/Await来解决前端数据一行一行显示的问题。可以将获取部…

vue+element+springboot实现多张图片上传

1.需求说明 2.实现思路 3.el-upload组件主要属性说明 4.前端传递MultipartFile数组与服务端接收说明 5.完整代码 1.需求说明 动态模块新增添加动态功能,支持多张图片上传.实现过程中对el-upload组件不是很熟悉,踩了很多坑,当然也参考过别的文章,发现处理很…

Spark RDD操作性能优化技巧

Apache Spark是一个强大的分布式计算框架,用于处理大规模数据。然而,在处理大数据集时,性能优化成为一个关键问题。本文将介绍一些Spark RDD操作的性能优化技巧,帮助大家充分利用Spark的潜力,并获得更快的处理速度。 …

2023.12.27 关于 Redis 数据类型 List 常用命令

目录 List 类型基本概念 List 类型特点 List 操作命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LREM LTRIM LSET 阻塞版本的命令 阻塞版本 和 非阻塞版本的区别 BLPOP & BRPOP List 类型基本概念 Redis 中的列表(list&am…

第十一章 Stream消息驱动

Stream消息驱动 gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信)、数据库集群、…