>> 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.]])
# 不尽写出来啰嗦,而且代表的意义也不是交换