像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应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish