我正在研究一种方法,使用其行的排列来找到给定矩阵的最低1-Norm。问题是排列不能完全随机。 Matrix中有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]]