Python 有没有办法排列矩阵的子集?
我正在研究一种方法,通过对给定矩阵行的排列,找到该矩阵的最低1-范数。问题是排列不可能是完全随机的。矩阵中有4个子集的行具有特殊参数。我只想排列具有这个参数的行,并将它们保持在同一位置 第一列定义行的类型Python 有没有办法排列矩阵的子集?,python,numpy,scipy,permutation,Python,Numpy,Scipy,Permutation,我正在研究一种方法,通过对给定矩阵行的排列,找到该矩阵的最低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, va
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。五,。行并排列2,3。四,。保留[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]]
你只需要仔细定义你的排列。然后,将执行以下操作: 例如:
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]]