Python,Numpy:如何同时更改两个向量

Python,Numpy:如何同时更改两个向量,python,numpy,Python,Numpy,我试图同时改变NumPy矩阵的两个向量,但我丢失了一个向量分量: import numpy as np data = np.array([[1, 2, 3, 4],[1, 2, 3, 4],[1, 2, 3, 4],[1, 2, 3, 4]]) last = data[:, -1] print(last) data[:, 1:] = data[:, :-1] data[:, 0] = last print(data) 给出以下结果: [4 4 4 4] [[3 1 2 3] [3 1 2

我试图同时改变NumPy矩阵的两个向量,但我丢失了一个向量分量:

import numpy as np

data = np.array([[1, 2, 3, 4],[1, 2, 3, 4],[1, 2, 3, 4],[1, 2, 3, 4]])
last = data[:, -1]
print(last)
data[:, 1:] = data[:, :-1]
data[:, 0] = last

print(data)
给出以下结果:

[4 4 4 4]
[[3 1 2 3]
 [3 1 2 3]
 [3 1 2 3]
 [3 1 2 3]]
但是我想维护第一列中的4s。有任何形式可以实现这一点吗?

使用:

>>> np.roll(data, 1, 1)
array([[4, 1, 2, 3],
       [4, 1, 2, 3],
       [4, 1, 2, 3],
       [4, 1, 2, 3]])

last=data[:,-1].copy()
?成功了,谢谢。谢谢,我会试试的。