Xip*_*ias 8 python arrays numpy iterable-unpacking
当我拥有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].
为什么会这样?
Ash*_*lla 10
如果您正在尝试交换列,则可以执行此操作
print x
x[:,[2,1]] = x[:,[1,2]]
print x
产量
[[ 1  2  0 -2]
 [ 0  0  1  2]
 [ 0  0  0  0]]
[[ 1  0  2 -2]
 [ 0  1  0  2]
 [ 0  0  0  0]]
你在问题中提到的交换方法似乎适用于单维数组和列表,
x =  np.array([1,2,0,-2])
print x
x[2], x[1] = x[1], x[2]
print x
产量
[ 1  2  0 -2] 
[ 1  0  2 -2]
| 归档时间: | 
 | 
| 查看次数: | 10796 次 | 
| 最近记录: |