In [16]:

```
import sys
import numpy as np
from numpy.random import shuffle
print 'Numpy version:', np.__version__
print 'Python version:', sys.version
print 'Platform:', sys.platform
```

Shuffle is supposed to simply move elements around, and that's what it does for a simple array:

In [2]:

```
a = np.arange(5)
for i in range(5):
print a
shuffle(a)
```

But with a structured one, it is misbehaving. Let's first construct an array whose dtype has a character and an int:

In [17]:

```
b = np.zeros(5, dtype=[('n', 'S1'), ('i', int)])
b['i'] = range(5)
print b
print b.dtype
```

And now we shuffle it a few times:

In [18]:

```
for i in range(5):
print b
shuffle(b)
```

Somehow, shuffle is propagating the first element to the whole array...