我有一个 numpy 矩阵,例如其中一行如下所示:
|0 1 2 3 4 5 6 7 8|
我可以获得数组的一部分,例如。 [3,4,5] 我出于一个目的需要使用 numpy 切片 a[0,3:6]。
是否有任何内置功能可以让我也获得不在该范围内的所有内容?喜欢[0,1,2,6,7,8]
请您参考如下方法:
一种方法 boolean indexing -
a[~np.in1d(np.arange(a.size),r)]
sample 运行-
In [174]: a
Out[174]: array([10, 11, 12, 13, 14, 15, 16, 17, 18])
In [175]: r
Out[175]: [3, 4, 5]
In [176]: a[~np.in1d(np.arange(a.size),r)] # Without r
Out[176]: array([10, 11, 12, 16, 17, 18])
In [177]: a[r] # With r
Out[177]: array([13, 14, 15])
另一个 integer array indexing -
a[np.setdiff1d(np.arange(a.size),r)]
另一种方法是在原始切片的两侧连接切片 -
np.concatenate((a[:r[0]], a[r[-1]+1:]))
