【发布时间】:2020-01-21 17:09:47
【问题描述】:
给出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.array(list(set(A) - set(A[2:4])))