如何在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)]