2

我遇到了一些奇怪的numpy.random.shuffle功能

from numpy import arange
from numpy.random import shuffle

a = arange(5)
b = a
c = a[:]

shuffle(c)

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

4

2 回答 2

5

根据基本切片文档

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

使用ndarray.copynumpy.copy获取副本。

于 2013-07-14T07:10:36.917 回答
1

使用c = a.copy()可以帮助你。

于 2013-07-14T07:10:33.443 回答