跳转到主要内容

ndindex是一个用于操作ndarray索引的Python库。

项目描述

ndindex

ndindex logo

ndindex是一个用于操作ndarray索引的Python库。

ndindex的文档可在https://quansight-labs.github.io/ndindex/找到

ndindex是一个库,允许表示和操作可以作为numpy数组有效索引的对象,即切片、整数、省略号、None、整数和布尔数组以及它们的元组。该库的目标是

  • 提供统一的API来操作这些对象。与标准索引对象(如sliceinttuple)不同,这些标准索引对象本身不共享任何与索引相关的公共方法,ndindex类可以统一操作。例如,idx.args总是返回用于构造idx的参数。

  • 提供由numpy的ndarray定义的100%正确的语义。这意味着除非对所有可能的输入数组形状都正确,否则ndindex不会对索引对象进行转换。此规则的唯一例外是,ndindex假设任何给定的索引不会引发IndexError(例如,来自越界的整数索引或维度不足)。对于已知数组形状的操作,有一个reduce()方法可以将索引简化为与给定形状等价的一个更简单的索引。

  • 在索引对象上启用有用的转换和操作功能。

示例

规范化切片(在给定的形状上,或独立于数组形状)

>>> from ndindex import *
>>> Slice(-2, 10, 3).reduce()
Slice(-2, 10, 2)
>>> Slice(-2, 10, 3).reduce(5)
Slice(3, 4, 1)

计算切片轴的最大长度

>>> import numpy as np
>>> len(Slice(2, 10, 3))
3
>>> len(np.arange(10)[2:10:3])
3

计算由[0, 0:10]索引的形状为(10, 20)的数组的形状

>>> Tuple(0, slice(0, 10)).newshape((10, 20))
(10,)
>>> np.ones((10, 20))[0, 0:10].shape
(10,)

检查索引数组是否为空

>>> Tuple(0, ..., Slice(10, 20)).isempty((3, 4, 5))
True
>>> np.ones((3, 4, 5))[0,...,10:20]
array([], shape=(4, 0), dtype=float64)

查看文档以获取ndindex能做什么的详细信息。

许可证

MIT许可证

致谢

ndindex的开发由Quansight Labs支持,部分由D. E. Shaw集团赞助。D. E. Shaw集团与Quansight在多个开源项目上进行合作,包括Numba、Dask和Project Jupyter。

https://labs.quansight.org/ https://www.deshaw.com

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

ndindex-1.9.2.tar.gz (243.0 kB 查看哈希)

上传时间

构建分发

ndindex-1.9.2-pp310-pypy310_pp73-win_amd64.whl (150.3 kB 查看哈希)

上传时间 PyPy Windows x86-64

ndindex-1.9.2-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (160.1 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ndindex-1.9.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (163.5 kB 查看哈希)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (147.0 kB 查看哈希)

上传时间 PyPy macOS 11.0+ ARM64

ndindex-1.9.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (147.2 kB 查看哈希)

上传时间 PyPy macOS 10.15+ x86-64

ndindex-1.9.2-pp39-pypy39_pp73-win_amd64.whl (150.2 kB 查看哈希值)

上传时间: PyPy Windows x86-64

ndindex-1.9.2-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (159.8 kB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

ndindex-1.9.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (163.1 kB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (146.9 kB 查看哈希值)

上传时间: PyPy macOS 11.0+ ARM64

ndindex-1.9.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (147.0 kB 查看哈希值)

上传时间: PyPy macOS 10.15+ x86-64

ndindex-1.9.2-cp313-cp313-win_amd64.whl (158.8 kB 查看哈希值)

上传时间: CPython 3.13 Windows x86-64

ndindex-1.9.2-cp313-cp313-win32.whl (150.9 kB 查看哈希值)

上传时间: CPython 3.13 Windows x86

ndindex-1.9.2-cp313-cp313-musllinux_1_2_x86_64.whl (500.9 kB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ x86-64

ndindex-1.9.2-cp313-cp313-musllinux_1_2_i686.whl (486.0 kB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ i686

ndindex-1.9.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (505.0 kB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ x86-64

ndindex-1.9.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (484.1 kB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-cp313-cp313-macosx_11_0_arm64.whl (160.0 kB 查看哈希值)

上传时间: CPython 3.13 macOS 11.0+ ARM64

ndindex-1.9.2-cp313-cp313-macosx_10_13_x86_64.whl (162.1 kB 查看哈希值)

上传时间: CPython 3.13 macOS 10.13+ x86-64

ndindex-1.9.2-cp312-cp312-win_amd64.whl (159.7 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

ndindex-1.9.2-cp312-cp312-win32.whl (151.5 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86

ndindex-1.9.2-cp312-cp312-musllinux_1_2_x86_64.whl (518.1 kB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ x86-64

ndindex-1.9.2-cp312-cp312-musllinux_1_2_i686.whl (501.8 kB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ i686

ndindex-1.9.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (521.2 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

ndindex-1.9.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (498.3 kB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-cp312-cp312-macosx_11_0_arm64.whl (162.0 kB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

ndindex-1.9.2-cp312-cp312-macosx_10_13_x86_64.whl (164.1 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.13+ x86-64

ndindex-1.9.2-cp311-cp311-win_amd64.whl (159.5 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

ndindex-1.9.2-cp311-cp311-win32.whl (151.6 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

ndindex-1.9.2-cp311-cp311-musllinux_1_2_x86_64.whl (506.3 kB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

ndindex-1.9.2-cp311-cp311-musllinux_1_2_i686.whl (489.6 kB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ i686

ndindex-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (506.1 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

ndindex-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (485.5 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-cp311-cp311-macosx_11_0_arm64.whl (161.9 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

ndindex-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl (163.5 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

ndindex-1.9.2-cp310-cp310-win_amd64.whl (159.5 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

ndindex-1.9.2-cp310-cp310-win32.whl (151.8 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

ndindex-1.9.2-cp310-cp310-musllinux_1_2_x86_64.whl (477.1 kB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ x86-64

ndindex-1.9.2-cp310-cp310-musllinux_1_2_i686.whl (462.1 kB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ i686

ndindex-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.5 kB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

ndindex-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (455.8 kB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-cp310-cp310-macosx_11_0_arm64.whl (162.2 kB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ ARM64

ndindex-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl (163.4 kB 查看哈希值)

上传时间: CPython 3.10 macOS 10.9+ x86-64

ndindex-1.9.2-cp39-cp39-win_amd64.whl (160.1 kB 查看哈希值)

上传时间: CPython 3.9 Windows x86-64

ndindex-1.9.2-cp39-cp39-win32.whl (152.5 kB 查看哈希值)

上传时间: CPython 3.9 Windows x86

ndindex-1.9.2-cp39-cp39-musllinux_1_2_x86_64.whl (483.3 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.2+ x86-64

ndindex-1.9.2-cp39-cp39-musllinux_1_2_i686.whl (467.0 kB 查看哈希值)

上传时间: CPython 3.9 musllinux: musl 1.2+ i686

ndindex-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (478.3 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

ndindex-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (458.6 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

ndindex-1.9.2-cp39-cp39-macosx_11_0_arm64.whl (163.3 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

ndindex-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl (164.5 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

由以下提供支持