NumPy random.shuffle函数

时间:2013-07-14 07:06:22

标签: 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)

ab所有更改均为c。实际上无论我shuffle()哪个变量,其他两个都随之改变。我想当我使用切片复制时,原始变量应该是独立的。我错过了什么?如何保护原始变量不被更改?

2 个答案:

答案 0 :(得分:5)

根据Basic slicing documentation

  

基本切片生成的所有数组始终是原始数组的视图。

使用ndarray.copynumpy.copy进行复制。

答案 1 :(得分:1)

使用c = a.copy()可以为您提供帮助。