当我有a=1
和b=2
时,我可以编写a,b=b,a
以交换a
和b
。
我将这个矩阵用作数组:
[ 1, 2, 0, -2]
[ 0, 0, 1, 2]
[ 0, 0, 0, 0]
交换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]
它产生:
[ 1, 0, 0, -2]
[ 0, 1, 1, 2]
[ 0, 0, 0, 0]
因此,x [:,1]
只是被覆盖而未被传输到 x [:,2]
。
为什么会这样呢?
d = [0,1,2,3]; d[:2], d[2:] = d[2:], d[:2]
产生[2, 3, 0, 1]
。 - tobias_k