我正在研究一种方法,该方法使用行的排列来查找给定矩阵的最低1-范数。问题在于排列不能完全随机。矩阵中有4个具有特殊参数的行子集。我只希望对具有此参数的行进行置换,并将它们放在同一位置。
例如第一列定义行的类型。
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]之类的类型保留在适当的位置。>
答案 0 :(得分:0)
您只需要仔细定义您的排列即可。花式索引将完成这项工作:
示例:
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]]