NumPy random.shuffle函数

LWZ*_*LWZ 2 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)
Run Code Online (Sandbox Code Playgroud)

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

fal*_*tru 5

根据Basic切片文档:

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

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