假設有一個名爲「A」的二維numpy數組(或數學中的矩陣),我想將第一行換成另一行「n」。 n可以是任何自然數。下面的代碼將不會工作在Python 3中,如何交換2維numpy數組中的兩個子數組?
A = np.eye(3)
n = 2
A[0], A[n] = A[n], A[0]
print(A)
你可以看到它給了(我展示了簡單的矩陣形式A)
A =
0, 0, 1
0, 1, 0
0, 0, 1
但我要的是
A =
0, 0, 1
0, 1, 0
1, 0, 0
我想過一種解決方案是引入另一個等於「A」的矩陣「B」,但是「A」和「B」是不同的對象。然後做這個
A = np.eye(3)
B = np.eye(3)
A[0], A[n] = B[n], B[0]
這可以給A.正確交換但它需要額外的矩陣「B」,我不知道這是否是有效的計算。或者,也許你有更好的主意?謝謝:)
嘗試'A [[0,n]] = A [[n,0]]' – hpaulj