是否有一种方法,我可以找到一个多维numpy数组匹配到另一个numpy数组的索引?



假设我有以下情况:

array1=np.array([[1,0,0],[0,1,0],[0,0,1]])
array2=np.array([0,0,1])

现在

array1[2] 

给出了输出

[0,0,1]

所以现在我想有代码给出array1(在本例中是2)的索引作为匹配array2array1的输出。有什么优雅的方法吗?我试过numpy.where,但没有得到正确的

我不确定我是否正确理解了你的问题。但是你也可以这样做:

import numpy as np
np.where((array2 == array1).all(axis=1))

你可以这样做:

index = np.argmax([0,0,1])

或者这样写:

indices = np.where(np.array([0,0,1]) == 1)

mask=np.all(array1 == array2, axis=1)将为您提供一个True和False的数组。这将在条件匹配的地方标记为True。您可以使用ind=np.argwhere(mask)搜索所有"True"的索引。在某种程度上,这和@sehan2的答案是一样的。

最新更新