像使用Numpy数组一样轻松地操作复杂数据结构。
项目描述
在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”文件、HDF5、Parquet或ROOT文件加载,或者它们可以是类似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 查看哈希)