riptable研究框架的Python包
项目描述
Riptable
一个开源的64位Python分析引擎,支持多线程,用于高性能数据分析。Riptable支持64位Linux和Windows上的Python 3.10至3.12。
类似于Pandas,基于NumPy,Riptable优化了交互式、实时分析大量数据。Riptable的速度通常比NumPy或Pandas快1.5倍至10倍。
Riptable通过以下方式实现最大速度:
关于Riptable的简介和参考文档可在以下链接找到: riptable.readthedocs.io
基本概念和类
FastArray 是NumPy的 ndarray
的子类,支持内置的多线程数值运算。所有期望接受NumPy数组的Scikit函数也接受 FastArray
。
Dataset 代替了Pandas的 DataFrame
类,并持有等长度的NumPy数组。
Struct 存储一组混合类型的数据成员,其中 Dataset
是其子类。
Categorical 代替了Pandas的 DataFrame.groupby()
方法和Pandas的 Categorical
类。Riptable的 Categorical
支持多键、可过滤的分组,具有与Pandas groupby
相同的功能,并更多。
Datetime 类替代了大多数NumPy和Pandas日期/时间类。Riptable的 DateTimeNano
、Date
、TimeSpan
和 DateSpan
类的设计更接近Java、C++或C#的日期/时间类。
Accum2 和 AccumTable 允许交叉制表功能。
SDS 提供了一种新的文件格式,可以在多个文件中堆叠多个数据集,使用 zstd 压缩、线程和无额外内存复制。
小型、中型和大型数组的性能
Riptable是为所有大小的数组设计的。对于小型数组(长度小于100),低处理开销很重要。Riptable的 FastArray
用手工编写的C语言编写,处理简单的算术函数比NumPy数组更快。对于中型数组(长度小于10万),Riptable具有向量化内建循环。对于大型数组(长度大于等于10万),Riptable知道如何动态扩展线程,高效地使用 futex 唤醒线程。
安装和导入Riptable
创建一个Conda环境并运行以下命令在Windows或Linux上安装Riptable
conda install riptable
在Python代码中导入Riptable以访问其函数、方法和类
import riptable as rt
注意:我们将Riptable模块的名称缩短为
rt
,以提高代码的可读性。
使用Riptable与NumPy数组
可以轻松地在NumPy的 ndarray
和Riptable的 FastArray
之间切换,而不产生数组的副本。
import riptable as rt
import numpy as np
rtarray = rt.arange(100)
numpyarray = rtarray._np
fastarray = rt.FastArray(numpyarray)
更改两个实例的视图以确认 FastArray
是 ndarray
的子类。
numpyarray.view(rt.FastArray)
fastarray.view(np.ndarray)
isinstance(fastarray, np.ndarray)
使用Riptable与Pandas DataFrames
直接从Pandas DataFrame
构建Riptable Dataset
。
import riptable as rt
import numpy as np
import pandas as pd
df = pd.DataFrame({"intarray": np.arange(1_000_000), "floatarray": np.arange(1_000_000.0)})
ds = rt.Dataset(df)
我如何信任Riptable的计算结果?
Riptable经过了多年的开发,并有一家大型金融公司数十名量化分析师对其功能进行了测试。我们还提供了一套完整的 测试,以确保模块按预期运行。但与任何项目一样,仍然存在错误和改进的机会,可以通过GitHub问题报告。
如何使Riptable的计算更快?
Riptable从一开始就是为了处理大量数据和多线程而编写的,它使用riptide_cpp层处理基本算术函数和算法。许多核心算法已经费尽心思地重写以支持多线程。
我如何贡献?
“Riptable”引擎是Python数据分析计算的一个构建块,我们欢迎用户和贡献者加入,共同将其提升到新的水平。在您遇到错误、文档问题以及新的或改进功能的机会时,请考虑联系团队。
有关更多信息,请参阅贡献指南。
项目详情
riptable-1.17.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 33d04368b43a16584181448241b4008e52d37097e5ea0397a72d873355a2b7de |
|
MD5 | 198d23f7c2c237357348c418dbe3b051 |
|
BLAKE2b-256 | 71ac750565d736b7e0b26fcb825f5cd3c39f6dc4ca39f29e1ec9d8a4e149904d |