在numpython数组中交换2个术语

在numpython数组中交换2个术语,python,Python,所以我尝试交换数组中的两个随机元素。旧的_顺序将是原始数组,新的_顺序将是发生切换后的数组。我不明白的是,为什么旧秩序的价值观会改变 我已把问题缩小到 import numpy as np old_order=np.array([0,1,2,3,4,5,6,7,8]) new_order=old_order swap_1,swap_2=random.sample(range(0,9),2) new_order[swap_1],new_order[swap_2]=old_order[swap_

所以我尝试交换数组中的两个随机元素。旧的_顺序将是原始数组,新的_顺序将是发生切换后的数组。我不明白的是,为什么旧秩序的价值观会改变

我已把问题缩小到

import numpy as np

old_order=np.array([0,1,2,3,4,5,6,7,8])
new_order=old_order
swap_1,swap_2=random.sample(range(0,9),2)
new_order[swap_1],new_order[swap_2]=old_order[swap_2],old_order[swap_1]

print(old_order,new_order)

如果删除此行,则新订单和旧订单都将相同。

只有一个数组
old\u order
new\u order
都绑定到同一数组。这条线

new_order[swap_1],new_order[swap_2]=old_order[swap_2],old_order[swap_1]
做一个新的参考。它不会复制数据。如果确实需要副本,请使用
old\u order.copy()

为新订单创建新数组。
否则,新订的、旧订的都会有同样的记忆。

非常感谢,我已经挠头差不多一个小时了
new_array = old_array
new_order=old_order.copy()