如何在numpy中从给定索引列表的数组返回项目列表

如何在numpy中从给定索引列表的数组返回项目列表,numpy,Numpy,我有一个数组arr和一个要获取索引的索引列表。我想得到与索引中的项相对应的数组子集以及该子集的补码 比如说 为了 我会得到 [1, 6] and [2, 4, 5] 感谢使用np.isin或np.inad(使用掩码): 或者,对互补部分使用np.setdiff1d(对于较大的数组和索引可以更快): 使用np.isin或np.inad(使用掩码): 或者,对互补部分使用np.setdiff1d(对于较大的数组和索引可以更快): 好吧,我放弃。您的结果中的[2,4,5]来自哪里?它是一个补码。您返

我有一个数组
arr
和一个要获取
索引的索引列表。我想得到与
索引中的项相对应的数组子集以及该子集的补码

比如说

为了

我会得到

[1, 6] and [2, 4, 5]

感谢使用
np.isin
np.inad
(使用掩码):

或者,对互补部分使用
np.setdiff1d
(对于较大的数组和索引可以更快):


使用
np.isin
np.inad
(使用掩码):

或者,对互补部分使用
np.setdiff1d
(对于较大的数组和索引可以更快):


好吧,我放弃。您的结果中的
[2,4,5]
来自哪里?它是一个补码。您返回由索引提供的项目,并从原始数组中删除这些项目(也可以是任何提供
arr
numpy数组的方法?如果是,请编辑您的代码accordingly@MstainoeditedOk,我放弃。
[2,4,5]在哪里
来自您的结果?它是一个补码。您返回由索引给出的项目,并从原始数组中删除这些项目(也可以是任何提供补码的方式)。您的
arr
是一个numpy数组吗?如果是,请编辑您的代码accordingly@Mstaino编辑
[1, 6] and [2, 4, 5]
arr = np.asarray([2, 4, 1, 5, 6])
indices = np.asarray([2, 4])
m = np.in1d(np.arange(len(arr)), indices)
arr1, arr2 = arr[m], arr[~m]
arr1, arr2
>>array([1, 6]), array([2, 4, 5])
arr1 = arr[indices]
arr2 = arr[np.setdiff1d(np.arange(len(arr)), indices, True)]