A[j,:] = A[maxindex,:]    # 注意这样是一个很低级的错误!这样只是赋值

我们很容易想起python中的两个值交换一句搞定不用引入中间变量

a, b = b, a

但在numpy的array或matrix中,这样是错误的

需要使用选中两行来互换:

A[[i, j], :] = A[[j, i], :] # 实现了第i行与第j行的互换

下面看一个实例:

import numpy as np
m = np.mat([[1. ,2 ,-1],[2,1,-2],[-3,1,1]])
print("A=",A)
A[[0,2],:] = A[[2,0],:]
print("A=",A) # -------------------------
A= [[ 1. 2. -1.]
[ 2. 1. -2.]
[-3. 1. 1.]] A= [[-3. 1. 1.]
[ 2. 1. -2.]
[ 1. 2. -1.]]
05-06 02:28