python - 在 numpy 中获取互补切片的最简洁方法

标签 python numpy slice

给出 numpy.array 切片补码的最简洁(紧凑)方式是什么?与 previous post 相反我没有考虑速度,而是考虑易用性/可读性/通用性。

以数组A=np.array([1,2,3,4,5,6])为例。我正在寻找 A[start:stop] 的补码,例如 A[2:4] 的补码是 "comp of A [2:4]"=array([1,2,3,6])。我正在寻找一种无论内容类型如何都适用的解决方案。因此 A 也可以包含数组、str 并且原则上理想情况下是正常 [start:stop] 切片操作也适用的任何维度。

不要求普遍性,这是我目前使用的:

def comp(A,start,stop):
    if A.ndim == 1:
        out = np.hstack((A[0:start],A[stop:]))
    else:
        out = np.vstack((A[0:start],A[stop:]))
    return out

最佳答案

这是 np.r_ 的一种简洁方式生成这些索引,然后索引到输入数组中 -

A[np.r_[:start,stop:len(A)]]

关于python - 在 numpy 中获取互补切片的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59846052/

相关文章:

python - 无法在 redhawk 的 fcalc 组件中设置方程

python - 反向使用 Python 格式字符串进行解析

python - 多维切片的紧凑符号

python - 从麦克风生成频谱图

python - 在 NumPy 中创建填充矩形的最有效方法

python - 如何引用 numpy 数组的切片/ View

rust - 有没有办法获取对 Vec<T> 的可变子切片的引用?

python - OpenCV Python equalizeHist 彩色图像

python - 通过重复 2D numpy 数组中的值创建 4D numpy 数组

python - 有效地从字符串末尾弹出子字符串