Mikhail_RU
@Mikhail_RU
учусь

Есть ли название у алгоритма (трансформация матрицы кросс-курсов валют)?

Всем привет!

Есть такая таблица с кросс-курсами валют (пример):
0 map[PLN:[1 0.23 0.25 16.43 18.21 4.94]]
1 map[EUR:[4.34 1 1.11 71.4 79.09 21.44]]
2 map[USD:[3.93 0.9 1 64.52 71.48 19.37]]
3 map[RUB:[0.061 0.014 0.015 1 1.11 0.3]]
4 map[INR:[0.055 0.013 0.014 0.9 1 0.27]]
5 map[MXN:[0.2 0.047 0.052 3.33 3.69 1]]

Задача - поменять местами произвольное количество строк таким образом, чтобы курсы обмена остались верными.
Есть ли готовый алгоритм из линейной алгебры, например?
Что-то типа повернуть матрицу на 180 градусов и умножить на единичный вектор?
Спасибо за конструктивные ответ!
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks
Просто используйте векторные операции. Это даже алгоритмом назвать нельзя - 2 векторные операции обмена.

Пример перестановки третьей строчки на последнее место на python/numpy:
>>> import numpy as np
>>> data
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19],
       [20, 21, 22, 23, 24]])
>>> data[:,[2,-1]] = data[:,[-1,2]]
>>> data[[2,-1]]=data[[-1,2]]
>>> data
array([[ 0,  1,  4,  3,  2],
       [ 5,  6,  9,  8,  7],
       [20, 21, 24, 23, 22],
       [15, 16, 19, 18, 17],
       [10, 11, 14, 13, 12]])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы