Skip to main content
 首页 » 编程设计

python之使用 numpy 获取切片后剩余的内容

2025年05月04日24sxdcgaq8080

我有一个 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:]))