Есть ли способ перестановки подмножества матрицы? - PullRequest
1 голос
/ 26 марта 2019

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

Ex. Первый столбец определяет тип строки.

A = [ 

      1,   val_11, val_12, ...   #1. Row

      2,   val_21, val_22, ...   #2. Row

      2,   val_31, val_32, ...   #3. Row

      2,   val_41, val_42, ...   #4. Row

      1,   val_51, val_52, ...   #5. Row
]

Итак, в этом примере я хочу переставить строки 1 и 5. И переставить строки 2, 3. и 4., сохраняя типы типа [1; 2; 2; 2; 1] на месте.

1 Ответ

0 голосов
/ 26 марта 2019

Вы просто должны тщательно определить свои перестановки.Причудливая индексация выполнит эту работу:

Пример:

from numpy.random import randint
M0 = randint(10,size=(5,5))
after=[4,2,3,1,0]
M0 = M[after]
print(M0)
print(M)

[[4 9 3 0 0]
 [3 1 7 6 0]
 [6 6 5 0 9]
 [0 4 7 1 3]
 [0 0 1 0 6]]

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