如何匹配两个 numpy ndArray 之间的索引并对其进行排序?



我有两个numpy ndArray。它们包含笛卡尔坐标中的 x,y 值。

parent =
[[ 10  234]
[ 20  100]
[ 30  100]
[ 40  345]
[  5  100]
[ -45 110]]

现在假设基于一些随机算法,我找到了我的子元素,其中 y 值为 100。

所以我的子元素看起来像这样:

child=
[[ 20  100]
[  5  100]
[ 30  100]]

当我的算法更改顺序时,我想创建一个函数,该函数将为我提供一个根据父元素正确排序的子元素。

所以我的孩子会看起来像这样:

child=
[[ 20  100]
[ 30  100]
[  5  100]]

30,100排在5,100之前,因为30,100的索引值较低。20,100保持相同的位置,因为它在所有指数中具有较低的指数值。

我很难做到这一点。如果你能帮我做到这一点,我会很高兴。

您可以通过循环遍历整个父列表并仅保留也在子列表中的父列表来执行此操作:

parent = [[10, 234],
[20, 100],
[30, 100],
[40, 345],
[5, 100],
[-45, 110]]
child = [[20, 100],
[5, 100],
[30, 100]]
print([i for i in parent if i in child])
>>>[[20, 100], 
[30, 100], 
[5, 100]]

最新更新