暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

你应该在Python中使用的5个更新的数据科学工具

云原生数据库 2023-05-26
155
您已经在使用NumPy、Pandas和scikit-learn了吗?下面是五个更强大的Python数据科学工具,可以在您的工具包中占有一席之地。
Python丰富的数据科学工具生态系统对用户有很大的吸引力。如此广泛而深入的收集的唯一缺点是,有时最好的工具可能会被忽视。
下面是一些Python可用的最新或不太知名的数据科学项目的概要。其中一些,比如Polars,得到了比以前更多的关注,但仍然值得更广泛的关注,而ConnectorX等其他公司则是隐藏的瑰宝。
ConnectorX
ConnectorX是一个Python库,它可以将数据从数据库加载到许多常见的数据处理工具中,并通过最小化需要执行的工作量来保持高效。大多数数据都存储在数据库中,但实际的计算通常发生在数据库之外。将数据从数据库传输到实际工作中可能会减慢速度,ConnectorX可以解决这个问题。
与即将讨论的Polars一样,ConnectorX在其核心使用了一个Rust库。这允许进行优化,例如能够并行加载数据源并进行分区。例如,可以通过指定分区列来以这种方式加载PostgreSQL中的数据。除了PostgreSQL之外,ConnectorX还支持从MySQL/MariaDB、SQLite、Amazon Redshift、Microsoft SQL Server和Azure SQL以及Oracle中读取数据。结果可以通过Pandas或PyArrow DataFrame,或通过PyArrow传输到Modin、Dask或Polars中。

DuckDB

使用Python的数据科学家应该知道SQLite——一个小而强大、速度快的关系型数据库,与Python一起打包。由于它作为一个进程内库运行,而不是一个单独的应用程序,因此它是轻量级和响应快的。DuckDB有点像回答了这个问题:“如果我们为OLAP制作SQLite会怎样?”像其他OLAP数据库引擎一样,它使用列存储数据,并针对长时间运行的分析查询工作负载进行了优化。但它提供了您从传统数据库中所期望的所有功能,例如ACID事务。而且没有单独的软件套件需要配置;您可以使用单个pip install命令在Python环境中运行它。
DuckDB可以直接导入CSV、JSON或Parquet格式的数据。生成的数据库也可以根据键(例如按年份和月份)分成多个物理文件以提高效率。查询的工作方式与任何其他SQL驱动的关系型数据库相同,但具有额外的内置功能,例如能够对数据进行随机抽样或构建窗口函数。DuckDB还有一个小但有用的扩展集合,包括全文搜索、Excel导入/导出、直接连接到SQLite和PostgreSQL、Parquet文件导出以及支持许多常见的地理空间数据格式和类型。

Optimus

你可能会被困在一个最不受欢迎的工作中,那就是为DataFrame中心的项目清理和准备数据。Optimus是一个全能的工具集,用于加载、探索、清洗和将数据写回各种数据源。Optimus可以使用Pandas、Dask、CUDF(和Dask + CUDF)、Vaex或Spark作为其基础数据引擎。数据可以从Arrow、Parquet、Excel、各种常见的数据库源或平面文件格式(如CSV和JSON)中加载并保存回去。
数据操作API类似于Pandas,但添加了.rows()和.cols()访问器,以便轻松完成诸如对数据框进行排序、按列值过滤、根据条件更改数据或根据某些条件缩小操作范围等操作。Optimus还捆绑了处理常见实际数据类型(如电子邮件地址和URL)的处理器。Optimus的一个可能问题是它仍在积极开发中,但其最后一个官方发布是在2020年。这意味着它可能不如您堆栈中的其他组件最新。

Polars

如果您大部分时间都在处理DataFrames,并且对Pandas的性能限制感到沮丧,请使用Polars。这个Python的DataFrame库提供了一个类似于Pandas的方便语法。与Pandas不同,Polars使用一个用Rust编写的库,从一开始就最大限度地利用了您的硬件。您不需要使用特殊的语法来利用性能增强功能,如并行处理或SIMD;这一切都是自动的。即使是像从CSV文件中读取这样的简单操作也更快。
Polars还提供了急切和惰性执行模式,因此查询可以立即执行或推迟到需要时执行。它还提供了一个流式API,用于逐步处理查询,尽管许多函数尚不支持流式处理。Rust开发人员可以使用pyo3编写自己的Polars扩展。

Snakemake

数据科学工作流程很难设置,甚至更难以一致、可预测的方式设置。Snakemake就是为了实现这一点而创建的:自动设置Python中的数据分析,以确保其他人获得与您相同的结果。许多现有的数据科学项目都依赖于Snakemake。您的数据科学工作流程中的移动部件越多,就越有可能通过Snakemake自动化它。 
Snakemake工作流程类似于GNU make工作流程——您使用规则定义要创建的内容,规则定义它们需要什么、输出什么以及执行哪些命令来完成这些内容。工作流程规则可以是多线程的(假设它们有任何好处),并且配置数据可以从JSON/YAML文件中传输。您还可以在工作流程中定义函数来转换规则中使用的数据,并将每个步骤所采取的操作写入日志。
Snakemake作业设计为可移植的——它们可以部署在任何Kubernetes管理的环境中,或在特定的云环境中,如Google Cloud Life Sciences或AWS上的Tibanna。工作流程可以“冻结”以使用某个确切的软件包集,任何成功执行的工作流程都可以自动生成单元测试并与其一起存储。对于长期存档,您可以将工作流程存储为tarball。


文章转载自云原生数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论