像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如何克服带有空值的不可空bean级验证   “此行有多个标记”的authenticateUser上的java MySQLConnection错误   java处理Jackson异常   java Netbeans编辑器如何知道文件在撤消后不会被修改?   目标C相当于Java的ArrayList   java当需要int时,可以将short传递给方法调用吗?   drawString()方法上的java MouseListener   java服务器socket是执行此操作的最佳选项   java需要单个匹配bean,但找到了2:org。springframework。网状物servlet。mvc。方法注释。RequestMappingHandlerMapping   如何在Java中执行Windows命令?   安卓应用程序的java文件主机   java将所有spring引导属性都设置在内。将yml文件转换为系统属性   Java邮件中的html内联链接在邮件客户端中不起作用   Java二进制文件的bazel版本控制   java如何在自定义ListView中使用Intent   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java一次add()调用可以在Solr服务器中索引多少文档?   java如何获取Avro GenericRecord大小