当我拥有a=1和b=2,我可以a,b=b,a这样写,a并b互相交换.
我使用这个矩阵作为数组:
[ 1, 2, 0, -2]
[ 0, 0, 1, 2]
[ 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
交换numpy数组的列不起作用:
import numpy as np
x = np.array([[ 1, 2, 0, -2],
[ 0, 0, 1, 2],
[ 0, 0, 0, 0]])
x[:,1], x[:,2] = x[:,2], x[:,1]
Run Code Online (Sandbox Code Playgroud)
它产生:
[ 1, 0, 0, -2]
[ 0, 1, 1, 2]
[ 0, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)
所以x[:,1]简单地被覆盖而不是转移到x[:,2].
为什么会这样?