a question, because I never do this: is it save in this case if f_exp is a view?

a tricky case:
```
>>> a = np.random.randn(10,4)
>>> b = a[:, ::2].T
>>> b.shape
(2, 10)
>>> c = b.reshape((5,4))
>>> b.shape = (5,4)
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    b.shape = (5,4)
AttributeError: incompatible shape for a non-contiguous array
>>> np.__version__
'1.6.1'
```