Python NumPy random.shuffle函数
我在使用Python NumPy random.shuffle函数,python,random,numpy,shuffle,Python,Random,Numpy,Shuffle,我在使用numpy.random.shuffle函数时遇到了一些奇怪的情况 from numpy import arange from numpy.random import shuffle a = arange(5) b = a c = a[:] shuffle(c) a和b所有的更改都是通过c进行的。实际上,无论我是哪个变量,其他两个变量都会随之改变。我认为当我使用slice copy时,原始变量应该是独立的。我错过什么了吗?如何保护原始变量不被更改?使用c=a.copy()可以帮助您
numpy.random.shuffle
函数时遇到了一些奇怪的情况
from numpy import arange
from numpy.random import shuffle
a = arange(5)
b = a
c = a[:]
shuffle(c)
a
和b
所有的更改都是通过c
进行的。实际上,无论我是哪个变量,其他两个变量都会随之改变。我认为当我使用slice copy时,原始变量应该是独立的。我错过什么了吗?如何保护原始变量不被更改?使用c=a.copy()
可以帮助您。根据:
通过基本切片生成的所有阵列始终是原始阵列的视图
使用或获取副本。使用切片可为普通列表创建副本,但不一定为所有类型创建副本。您必须阅读任何类型对象的文档,以查看切片是否生成副本。