Сортировать массив строк в соответствии с порядком другого массива, используя первый столбец - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два массива данных, массив A имеет 4 столбца и около 59 000 строк, массив B имеет 24 столбца и около 45 000 строк.Первые 3 столбца массива A содержат те же данные, что и первые 3 массива B, но в другом порядке.Я хочу изменить порядок каждой строки массива A в массиве B, используя первый столбец.Я нахожу ответы, но только для массивов одинаковой длины.Я не могу найти ответ для массивов, которые не имеют одинаковую длину.

Я нашел один ответ здесь , но продолжал получать ошибку: "Слишком много индексов для массива".Эта ошибка будет возникать в первой строке ответа sidx = A[:,0].argsort() Я не уверен, как мне исправить это.

Я не уверен, полезно это или нет, но в первом столбце обоихмассивы являются целыми числами.Все остальное поплавки.Если есть какое-то решение этой ошибки или другой тип решения моей проблемы, любая помощь будет принята с благодарностью!

Вот как выглядят оба массива.

In: arrayA
Out: array([(8846,  73.00, 57.56, 1.),
   (4814, 347.21, 56.61, 0.),
   (2779,  72.14 , 57.34, 0.),
   (1439,  30.24, 64.81, 1.),
   (3677,  85.50, 31.85, 1.),
   (9777, 199.95, 50.46, 1.)])
In: arrayB
Out: array([(2779,  72.14 , 57.34, 17.165, 0.005, 1.329, 19.745, 0.031),
   (9777, 199.95, 50.46, 15.19, 0.002, 0.019, 19.193, 0.023),
   (8846, 73.00, 57.56, 14.21, 0.002, 1.754, 16.918, 0.007),
   (3677, 85.50, 31.85, 20.1, 0.073, 2.394, 23.976, 1.091, 4.441)])

Я хочу, чтобы конечный продукт был отсортированной версией массива A, чтобы каждый индекс A соответствовал каждому индексу массива B

In: arrayA_sorted
Out: array([(2779,  72.14 , 57.34, 0.),
   (9777, 199.95, 50.46, 1.),
   (8846, 73.00, 57.56, 1.),
   (3677,  85.50, 31.85, 1.),
   (4814, 347.21, 56.61, 0.),
   (1439,  30.24, 64.81, 1.)])

Здесь первые три столбцаИндексы от 0 до 3 arrayA_sorted соответствуют первым трем столбцам массива B. Дополнительные две строки не затрагиваются, потому что они не могут быть сопоставлены ни с чем и оставлены в нижней части массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...