gpt4 book ai didi

python - Numpy 中的行交换

转载 作者:太空狗 更新时间:2023-10-29 17:14:40 29 4
gpt4 key购买 nike

<分区>

在 Python 中,我可以通过多重影响交换 2 个变量;它也适用于列表:

l1,l2=[1,2,3],[4,5,6]
l1,l2=l2,l1
print(l1,l2)
>>> [4, 5, 6] [1, 2, 3]

但是当我想交换一个 numpy 数组的 2 行时(例如在高斯算法中),它失败了:

import numpy as np
a3=np.array([[1,2,3],[4,5,6]])
print(a3)
a3[0,:],a3[1,:]=a3[1,:],a3[0,:]
print(a3)
>>> [[1 2 3]
[4 5 6]]
[[4 5 6]
[4 5 6]]

我认为,出于一个奇怪的原因,这两列现在指向相同的值;但事实并非如此,因为 a3[0,0]=5 在前面的行更改 a3[0,0] 而不是 a3[1,0] 之后。

我已经找到了如何解决这个问题:例如 a3[0,:],a3[1,:]=a3[1,:].copy(),a3[0,:]。 copy() 有效。但是谁能解释为什么 numpy 行的多重矫揉造作的交换失败了?我的问题涉及 Python 和 Numpy 的基础工作。

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