1. 程式人生 > >numpy.ndarray 交換多維陣列(矩陣)的行/列

numpy.ndarray 交換多維陣列(矩陣)的行/列

>> import numpy as np
>> P = np.eye(3)
>> P
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

交換第 0 行和第 2 行:

>> P[[0, 2], :] = P[[2, 0], :]
        # P[(0, 2), :] = P[(2, 0), :]
>> P
array([[ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 1.,  0.,  0.]])

再交換第一列和第三列:

>> P[:, [0, 2]] = P[:, [2, 0]]
>> P
array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

注意以下是錯誤的做法:

>> P[0, :], P[2, :] = P[2, :], P[0, :]
>> P
array([[ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]])

        # 不盡寫出來囉嗦,而且代表的意義也不是交換