python - 如何为切片 numpy 数组提供语法糖?

标签 python numpy numpy-indexing

我想通过执行以下操作来编写更具可读性的代码:

import numpy as np

SLICE_XY = slice(0, 2)
SLICE_Z = slice(2, 3)

data = np.array([[0, 1, 2],
                 [3, 4, 5],
                 [6, 7, 8],
                 [9, 10, 11]])

xy = data[:, SLICE_XY]
z = data[:, SLICE_Z]

但是,我遇到了执行上述操作产生的问题

>>> xy
array([[ 0,  1],
       [ 3,  4],
       [ 6,  7],
       [ 9, 10]])
>>> z
array([[ 2],
       [ 5],
       [ 8],
       [11]])

这是我对 xy 的预期。但是对于 z 我希望它等同于

>>> data[:, 2]
array([ 2,  5,  8, 11])

注意:

>>> data[:, 0:2]
array([[ 0,  1],
       [ 3,  4],
       [ 6,  7],
       [ 9, 10]])

最佳答案

SLICE_Z = 2

按照设计,arr[0:1] 与 arr[0] 不同。切片总是返回可迭代对象。

关于python - 如何为切片 numpy 数组提供语法糖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52673933/

相关文章:

python - 切片插入问题,L[1 :1]

python - 屏蔽 3D numpy 数组,其中数组等于值列表

python-3.x - 如何删除嵌套的 for 循环并使用 numpy 数组 insead

python - Numpy 索引问题.....高级索引 X[0] 在这里做什么?

python - 字符串格式化类型代码

python - 获取二维数组的非零元素的索引

使用 Numpy 仅出现在浮雕图像上的 Python 错误

python - Numpy 高级索引失败

python - Alembic --autogenerate 尝试重新创建每个表

python - 如何从非零元素的索引字典创建稀疏 numpy 数组?