Как сопоставить индекс между двумя numpy ndArray и отсортировать их? - PullRequest
1 голос
/ 20 января 2020

У меня есть два 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 остаются в том же положении, так как у него более низкое значение индекса среди всех.

У меня трудности с достижением этого. Я буду очень рад, если вы поможете мне достичь этого.

1 Ответ

1 голос
/ 20 января 2020

Вы можете сделать это, перебрав весь родительский список и сохранив только те, которые также есть в дочернем списке:

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]]
...