我正在研究一种方法,使用行的排列来找到给定矩阵的最低 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] 等类型。
最佳答案
您只需要仔细定义您的排列即可。花哨的索引就可以完成这项工作:
示例:
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]]
关于python - 有没有办法置换矩阵的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55351982/