I ran into something strange with numpy.random.shuffle function
from numpy import arange
from numpy.random import shuffle
a = arange(5)
b = a
c = a[:]
shuffle(c)
a and b all changes with c. Actually no matter I shuffle() which variable, the other two all changes with it. I thought when I use slice copy the original variable should be independent. Did I miss something? How can I protect the original variable from being changed?