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.]]
