给出 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/