从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起,这些库的受欢迎程度呈指数级增长。

在这篇文章中,我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。

这篇文章旨在检验我的预测能力。但我也写这篇文章是为了引发关于关键趋势的讨论,并帮助数据科学家思考他们在未来几年应该发展的技能。

注意事项

  1. 这篇文章是从一个传统上以Pandas进行探索性数据分析,然后将分析结果以无服务器函数形式进行生产化的工作者的角度出发。生产阶段可能涉及机器学习模型,但也可能是一组定义好的规则和正则表达式。
  2. 我的经验也包括作为研究科学家在集群上运行大规模分析,而不涉及任何无服务器生产阶段。

预测一:Polars 和 DuckDB 将取代 Pandas 作为表格数据的核心工具

随着性能上相比 Pandas 的巨大飞跃,Polars 和 DuckDB 将成为 Python 中数据分析的标准工具。这一转变已经从那些感受到最大性能压力的用户开始,但随着它们周围生态系统的发展,它们将成为标准。

然而,这些工具的优势并不仅仅在于它们计算速度有多快。Polars 的表达式语法比 Pandas 中相应的语法更适合描述数据转换。这两个库都应用了自动查询优化,避免了 Pandas 代码越来越繁琐的手动优化。它们还都处理了并行化和大于内存的数据,而无需其他无数依赖项。

我认为 Polars 和 DuckDB 将成为双寡头,而不是其中之一取代 Pandas 成为垄断者。尽管这两个库的功能有很多重叠,但有些人会想要一个像 DuckDB 这样的工具,它拥有更多关系型数据库的陷阱,而有些人则不会。

预测二:Arrow 将成为数据科学生态系统的核心技术

Apache Arrow 是一种用于表示内存中数据的格式。Arrow 的设计是语言无关的,并且许多语言中都出现了实现这种格式的库。

Polars 是直接基于名为 Arrow2 的 Rust Arrow 库构建的。DuckDB 并不是基于 Arrow 构建的,但它可以从 Arrow 数据中进行零拷贝读取。

Arrow 将取代 Numpy 数组在数据科学生态系统中表格数据的核心地位。这意味着可视化、机器学习和其他库将接受 Arrow 对象作为输入。由于 Arrow 允许零拷贝数据交换,这些库将能够直接从数据框中直接摄取数据,而无需像现在这样进行大量浪费性的数据复制。

随着 Arrow 使得进程间通信更加容易,我们还将看到数据科学工具的融合,例如在 Python 脚本中拟合 R 模型。

在这方面,变革的步伐比 Polars 和 DuckDB 的采用要慢一些。然而,变革的步伐正在加快。例如,XGBoost 模型现在接受 Arrow 表作为输入,而 Huggingface 的 Datasets 库则使用 Arrow 作为其本地缓存系统。

预测三:Rust 化的趋势

在数据科学蓬勃发展的十年里,我所在领域的日常工作主要由像 Python 这样的动态语言或像 R 和 Julia 这样使用即时编译的语言主导。虽然像 C 和 C++ 这样的编译型语言被用于 Python 扩展或 DuckDB 的内部,但很少有数据科学家直接使用它们。

我预测 Rust 将成为数据科学家常用的第一种预编译语言(而不会取代 Python 和 R 作为主要语言)。Rust 在数据科学家中的普及将受到 Polars 的推动,用户会发现从使用 Python 切换到 Rust API 的门槛相对较低——比从 Pandas 切换到 C 的门槛要低得多!

我们还将看到更多基于 Rust 构建的库,这些库将提供 Python 和 R 的 API。特别是,我认为我们将看到一个广泛使用的、用 Rust 编写并基于 Apache Arrow 的 Scikit-Learn 替代品。

在过去的几个月里,我在 Polars 的工作中明显感受到了 Rust 的优势。相比 Python,Rust 在性能上的提升是巨大的,并且并行化得到了可靠的管理。然而,Rust 周围的现代工具系统,如用于管理依赖项的 Cargo,使得 Rust 对于 Python 开发者来说比旧语言更容易接受。我之所以决定将精力集中在 Polars 而不是 DuckDB 上,其中一个因素就是我对学习 Rust 的热情远超过学习 C++。

关于GPU

我最近将Polars描述为地球上最快的数据科学工具。然而,一位受访者正确地指出,基于GPU的库(如cuDF)更快。但是,使用GPU的额外成本很高,包括GPU本身的成本以及管理额外云实例的成本。

GPU在数据处理方面的流行度将继续增长,但在未来几年内不会成为标准方法。随着Polars和DuckDB通过内置并行化和矢量化指令更高效地利用多核CPU,只有高级用户才会觉得使用GPU的成本效益是合理的。

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

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

相关文章

计算机技术与软件专业技术资格(软考)纸质证书邮寄方法

电子版证书已经有网友指出说明方法了,参考 软考电子证书下载 注意如果下载的PDF文件值无法打开的话,可以选择查看,然后 ctrlp 打印为PDF, 也是另外的一种下载方法; 下面说一下纸质版证书邮寄方法 1:登录网站 中国计…

【保姆级】Python项目部署到Linux生产环境(uwsgi+python+flask+nginx服务器)

1.安装python 我这里是3.9.5版本 安装依赖: yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y 根据自己的需要下载对应的python版本: cd /usr/local wget https://www.python.or…

CyberVadis认证是什么

CyberVadis认证是一项全球性的、权威的、基于云的网络安全性评估和认证项目。它是由Altimeter公司开发的,专门针对云计算服务提供商、数据中心、软件即服务(SaaS)供应商、安全咨询服务公司和内部IT部门而设计的。 CyberVadis认证旨在评估和验证组织在网络安全方面的…

数电基础 - 硬件描述语言

目录 一. 简介 二. Verilog简介和基本程序结构 三. 应用场景 四. Verilog的学习方法 五.调式方法 一. 简介 硬件描述语言(Hardware Description Language,HDL)是用于描述数字电路和系统的形式化语言。 常见的硬件描述语言包括 VHDL&…

邮箱表单系统源码

邮箱表单简介 我们的邮箱表单系统是一个简洁高效的工具,旨在为用户提供一种便捷的方式来提交他们的邮箱地址。该系统可以用于订阅新闻通讯、注册活动、获取用户反馈等多种场景。 功能特点: 用户友好的界面: 表单设计简洁直观,用…

成功适配!极验设备指纹HarmonyOS 鸿蒙版官方下载

近日,华为开发者大会(HDC 2024)在东莞召开。在大会开幕日的首场主题演讲中,华为宣布当前已有TOP5000应用成为鸿蒙原生应用,350+SDK已适配HarmonyOS NEXT版本。其中,极验作为其重要伙伴&#xff…

AI自动生成PPT哪个软件好?高效制作PPT优选这4个

7.15初伏的到来,也宣告三伏天的酷热正式拉开序幕~在这个传统的节气里,人们以各种方式避暑纳凉,享受夏日的悠闲时光。 而除了传统的避暑活动,我们还可以用一种新颖的方式记录和分享这份夏日的清凉——那就是通过PPT的方式将这一传…

02 Git环境搭建

第2章:Git环境搭建 一、Git下载和安装 ​ 官网:Git (git-scm.com) 一)安装主程序 ​ 准备安装包,双击安装 ​ 开始安装 ​ 选择安装位置 ​ 选择需要安装的组件(默认) ​ 选择文件夹菜单 ​ 选择编辑器&…

自适应巡航控制中的Stop Go功能详解

自适应巡航控制中的跟车行驶功能详解 文章目录 1. 背景介绍2. 功能定义3. 功能原理4. 传感器架构5. 实际应用案例6. 总结与展望 1. 背景介绍 自适应巡航控制(Adaptive Cruise Control, ACC)系统中的Stop & Go功能是提升驾驶舒适性和安全性的重要子…

Visual Studio2022中使用.Net 8 在 Windows 下使用 Worker Service 创建守护进程

Visual Studio2022中使用.Net 8 在 Windows 下创建 Worker Service 1 什么是 .NET Core Worker Service1.1 确认Visual Studio中安装了 ASP.NET和Web开发2 创建 WorkerService项目2.1 新建一个WorkerService项目2.2 项目结构说明3 将应用转换成 Windows 服务3.1 安装Microsoft.…

Spring与设计模式实战之策略模式

Spring与设计模式实战之策略模式 引言 在现代软件开发中,设计模式是解决常见设计问题的有效工具。它们提供了经过验证的解决方案,帮助开发人员构建灵活、可扩展和可维护的系统。本文将探讨策略模式在Spring框架中的应用,并通过实际例子展示…

【HarmonyOS】关于鸿蒙消息推送的心得体会 (一)

【HarmonyOS】关于鸿蒙消息推送的心得体会(一) 前言 这几天调研了鸿蒙消息推送的实现方式,形成了开发设计方案,颇有体会,与各位分享。 虽然没做之前觉得很简单的小功能,貌似只需要和华为服务器通信&…

MyPostMan 迭代文档管理、自动化接口闭环测试工具(自动化测试篇)

MyPostMan 是一款类似 PostMan 的接口请求软件,按照 项目(微服务)、目录来管理我们的接口,基于迭代来管理我们的接口文档,文档可以导出和通过 url 实时分享,按照迭代编写自动化测试用例,在不同环…

TypeScript 函数类型 (二)

函数类型 函数有两种方式定义 function 关键字来定义函数 function a(){}表达式定义(箭头函数的形式) const a()>{}函数需要定义类型的有三个地方 入参 和 返回值 以及 函数本身 的类型, 函数本身的类型常用于表达式定义的函数 function sum(a:stri…

【低照度图像增强系列(8)】URetinex-Net算法详解与代码实现(2022|CVPR)

前言 ☀️ 在低照度场景下进行目标检测任务,常存在图像RGB特征信息少、提取特征困难、目标识别和定位精度低等问题,给检测带来一定的难度。 🌻使用图像增强模块对原始图像进行画质提升,恢复各类图像信息,再使用目标检…

Word参考文献交叉引用

前言 Word自带交叉引用功能,可在正文位置引用文档内自动编号的段落,同时创建超链接,适用于参考文献的引用。使用此方法对参考文献进行引用后,当参考文献的编号发生变化时,只需要更新域即可与正文中的引用相对应。下文…

实习随笔【实现Json格式化与latex渲染】

【写在前面】在实习中,遇到了如下需求: 待格式化数据大概长这样,里面存在Json乱码以及由$$包裹的公式 目标格式: 一、Json格式化 我们这里的任务主要分为两部分: 解析一个可能包含嵌套的 JSON 字符串格式化 JSON 对象…

这个工具居然能让你的微信暴露得一览无余!!

今天在github看到一个不错的项目,叫做wx-dump-4j,不看不知道,一看吓一跳,这个工具完全的解析了我的微信!这个工具准确显示好友数、群聊数和当日消息总量,并且!!这个工具提供过去15天…

冷却塔的选型计算介绍

1 冷却塔补水量计算 冷却塔补水蒸发量排污量飘散损失泄漏量。一般冷却塔内水份的蒸发量约为进水量的1~2.5%。 (1)蒸发量 总冷却循环水量的蒸发量E C ① 冷却蒸发量 E E=72Q(X1–X2)=L △t/600 E : 蒸发…

【C++题解】1154. 数组元素的查找

问题:1154. 数组元素的查找 类型:数组找数 题目描述: 给你 m 个整数,查找其中有无值为 n 的数,有则输出该数第一次出现的位置,没有则输出 −1 。 输入: 第一行一个整数 m 代表数的个数 ( 0≤m≤100 ) 。…