numpy array或matrix的交換兩行


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM