我在使用numpy.random.shuffle函数时遇到了一些奇怪的事情
from numpy import arange
from numpy.random import shuffle
a = arange(5)
b = a
c = a[:]
shuffle(c)a和b都使用c进行了更改。实际上,无论我shuffle()哪个变量,其他两个变量都会随之改变。我认为当我使用slice copy时,原始变量应该是独立的。我错过了什么吗?如何保护原始变量不被更改?
发布于 2013-07-14 15:10:37
根据Basic slicing documentation的说法
通过基本切片生成的所有数组始终是原始数组的视图。
使用ndarray.copy或numpy.copy获取副本。
发布于 2013-07-14 15:10:33
使用c = a.copy()可以对您有所帮助。
https://stackoverflow.com/questions/17637327
复制相似问题