跳转到主要内容

像使用Numpy数组一样轻松地操作复杂数据结构。

项目描述

awkward-array

在Numpy中进行矩形、数值数据的计算比传统的for循环更简单、更快速。例如,考虑以下情况:

all_r = []
for x, y in zip(all_x, all_y):
    all_r.append(sqrt(x**2 + y**2))

all_r = sqrt(all_x**2 + all_y**2)

后者不仅更容易阅读,比for循环快数百倍(并且提供了隐藏的向量化和平行化的机会)。然而,Numpy的抽象只适用于数字或字符字符串的矩形数组。虽然可以将任意的Python数据放入Numpy数组中,但Numpy的 dtype=object 实质上是一个固定长度的列表:数据在内存中不是连续的,操作也不是向量化的。

Awkward Array是一个纯Python+Numpy库,用于以类似于Numpy数组的方式操作复杂数据结构。

  • 即使您的数据结构

  • 包含可变长度的列表(锯齿状/参差不齐的),

  • 深度嵌套(记录结构),

  • 同一列表中有不同的数据类型(异构的),

  • 是遮罩的、位遮罩的或索引映射的(可空),

  • 包含交叉引用或甚至是循环引用,

  • 需要在需要时是Python类实例,

  • 不是在每个点上定义的(稀疏的),

  • 不是在内存中连续的,

该库可以像列式数据结构一样访问它们,其效率与Numpy数组相当。它们可以从JSON或Python数据转换而来,从“awkd”文件、HDF5ParquetROOT文件加载,或者它们可以是类似Arrow的内存缓冲区的视图。

安装

像安装其他Python包一样安装Awkward Array

pip install awkward0                      # maybe with sudo or --user, or in virtualenv

基础 awkward0 包只需要Numpy (1.13.1+)。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源代码分布

awkward0-0.15.5.tar.gz (122.9 kB 查看哈希)

上传时间 源代码

构建分布

awkward0-0.15.5-py3-none-any.whl (87.6 kB 查看哈希)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面