利用惰性评估和优化焊接框架实现熊猫的基本需求。

baloo的Python项目详细描述


巴鲁

实现bare necessities 使用lazy计算的Pandas的 优化Weld框架。

PyPI versionBuild Status

文档here

安装

pip install baloo

请注意,目前它只在Python3.5.2上测试过,尽管任何Python3版本都应该可以。

基准

种子随机数据的基准结果如下所示。 数据由4个numpy数组列组成:float64的2列、int64的1列和int32的1列。 前两个图分别在56MB和420MB总数据上运行以下操作:

df = df[(df['col1'] > 0) & (df['col2'] >= 10) & (df['col3'] < 30)]              # filter                                                   
df = df.agg(['min', 'prod', 'mean', 'std'])                                     # 4x agg
df['col4'] = df['col1'] * 2 + 1 - 23                                            # 3x op
df['col5'] = df['col1'].apply(np.exp)                                           # udf
df = df.groupby(['col2', 'col4']).var()                                         # groupby*
df = df[['col3', 'col1']].join(df[['col3', 'col2']], on='col3', rsuffix='_r')   # join*

*注意,groupby和join实现在baloo中被简化了。例如,groupby结果未排序 在巴鲁就像熊猫一样。baloo中的join实现目前依赖于排序和区分的on数据; SortedNes预计很快就会修补。

benchmark resultsbenchmark results

最后这张图显示了3x op在不同数据集大小上的执行时间:

benchmark scalability

实际上,由于矢量化等特性,Weld的伸缩性很好,但是编译时间超过了 小数据集计算时间的改进。然而,baloo目前只支持 熊猫。更多的工作马上就要来了!

用于运行基准测试的脚本可以在相关文件夹中找到。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Eclipse内存分析器(MAT):不显示当前正在运行的进程   java Apache Velocity:转义字符不能作为关联数组键用于PHP   不截断零的java格式十进制输出   在另一个类文件中调用时返回空值的java getter   java集合获取连接   java解析json使用Gson登录系统应用程序强制关闭   java DelferredResult带有两个请求的ajax请求   java可降低功耗,同时应使用无线   java BoxLayout无法共享错误?   java如何使用计时器制作闹钟   java使用OAuth2保护RESTWeb服务:一般原则   java在一个jframe上显示多个图像和按钮