gpt4 book ai didi

python - 使用 NumPy 数组交换列

转载 作者:太空狗 更新时间:2023-10-29 21:16:01 31 4
gpt4 key购买 nike

当我有 a=1b=2 时,我可以写 a,b=b,a 这样 ab 可以互换。

我将这个矩阵用作数组:

   [ 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]

为什么会这样?

最佳答案

如果你想交换列,你可以这样做

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]

关于python - 使用 NumPy 数组交换列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24507550/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com