Как удалить повторяющиеся значения в одной строке двумерного массива Numpy, а также удалить соответствующее значение в другой строке? - PullRequest
0 голосов
/ 20 сентября 2018

Скажите, что у меня есть двумерный массив с номерами, который выглядит следующим образом

x = np.array( [[ 3 , 4, 2 ,4, 7, 9, 7, 5, 2, 1, 7 ], [ 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1] ])
print(x)

>[[ 3  4  2  4  7  9  7  5  2  1  7]
> [11 10  9  8  7  6  5  4  3  2  1]]

Я хочу удалить повторяющиеся числа в первой строке и удалить соответствующее число во 2-й строке.Номер, который не удаляется, является самым большим (из 2-го ряда).

Вот то, что я хочу, чтобы вывод был похож.

>[[ 3  4  2  7  9  5  1  ]
> [11 10  9  7  6  4   2  ]]

Были удалены все дубликаты из строки 1, а также соответствующее значение в строке 2. Оставшееся значение всегда является наибольшим значением в строке 2.

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

1 Ответ

0 голосов
/ 20 сентября 2018

Использование np.unique с return_index=True:

_, idx = np.unique(x[0], return_index=1)
x[:, np.sort(idx)]

array([[ 3,  4,  2,  7,  9,  5,  1],
       [11, 10,  9,  7,  6,  4,  2]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...