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

awkward的Python项目详细描述


awkward-array

与传统的循环计算相比,用矩形数值数据进行计算在numpy中更简单、更快。例如,考虑一下

all_r=[]forx,yinzip(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本质上是一个固定长度的列表:数据在内存中不连续,操作没有矢量化。

笨拙数组是一个纯python+numpy库,用于处理复杂的数据结构,就像处理numpy数组一样。即使您的数据结构

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

这个库可以以columnar data structures的形式访问它们,具有numpy数组的效率。它们可以从json或python数据转换,从“awkd”文件、HDF5ParquetROOT文件加载,也可以是像Arrow这样的内存缓冲区视图。

^ {STR 1 } $注:此项目的反馈通知awkward-1.0的开发,C++中的重新实现,使用更简单的用户界面,进入2020。在这里留下关于笨拙数组未来的评论(如github问题或google文档)。

安装

像其他python包一样安装笨拙:

pip install awkward                       # maybe with sudo or --user, or in virtualenv
pip install awkward-numba                 # optional: integration with and optimization by Numba

或者使用conda

安装
conda config --add channels conda-forge   # if you haven't added conda-forge already
conda install awkward
conda install awkward-numba               # optional: integration with and optimization by Numba

基本的awkward包只需要Numpy(1.13.1+),但是awkward-numba还需要Numba

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

推荐PyPI第三方库


热门话题
反射Java getMethod()会导致NoSuchMethodException错误   编译器构造Java编译时错误:解析时到达文件末尾   java我无法使用Spring Boot从应用程序引擎中的服务连接到Google数据存储   java单一注销配置文件Idp注销问题   regex如何在java中编写和使用正则表达式   java Android:单击标签打开电子邮件应用程序   java如何确保函数执行函数的整个检查?   java如何将字母数字电话号码转换为数字   listview更改中项目内部的java ImageView   java将空对象转换为整数   对等端重置java Google Drive SDk连接   在java程序中测试未授权的隐藏测试(代码战)