像Numpy一样容易地操作复杂数据结构的数组。

awkward0的Python项目详细描述


awkward-array

对于传统的Numpy数据,数值循环比传统的Numpy更快。例如,考虑一下

all_r=[]forx,yinzip(all_x,all_y):all_r.append(sqrt(x**2+y**2))

^{pr2}$

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

baughtarray是一个纯Python+Numpy库,用于像处理Numpy数组一样处理复杂的数据结构。即使你的数据结构

  • 包含可变长度列表(参差不齐)
  • 深度嵌套(记录结构)
  • 在同一列表中具有不同的数据类型(异构)
  • 被屏蔽、位屏蔽或索引映射(可为空)
  • 包含交叉引用甚至循环引用
  • 需要是Python类实例
  • 不是在每个点都定义(稀疏)
  • 在内存中不是连续的
  • 不应一次加载到内存中(lazy)

这个库可以以columnar data structures的形式访问它们,其效率相当于Numpy数组。它们可以从JSON或Python数据转换,从“awkd”文件、HDF5Parquet或{a5}文件加载,也可以是像Arrow这样的内存缓冲区中的视图。在

安装

像其他Python包一样安装笨拙的数组:

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

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

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

推荐PyPI第三方库


热门话题
使用SerializationUtils时java ClassNotFoundException。克隆()   java Cucumber+spring:如何通过测试触发SmartLifecycle事件?   java如何使ProGuard以简单的方式工作?   java JSP页面显示来自集合的日期   谷歌地图检查坐标是否位于JAVA中谷歌地图API的多边形中   java如何在终端中使用“tokens”打印令牌?   java获取编译错误:包com。威里奥。sdk不存在   java会使用JAXB或类似工具自动填充HATEAOS链接吗?   Javascript(GraalJS)与Java中未签名的右移>>>>   如何在Java代码中创建jdbc请求的Jmeter测试   java如何在CellList中添加或删除单个元素?   java Progressbar:如何创建原始对象的深度副本