If k is an numpy array of an arbitrary shape, so k.shape = (s1, s2, s3, ..., sn), and I want to reshape it so that k.shape becomes (s1, s2, .
k.shape = (s1, s2, s3, ..., sn)
k.shape
(s1, s2, .
It's easier like this:
k.reshape(k.shape + (1,))
But if all you want is to add an empty dimension at the end, you should use numpy.newaxis:
numpy.newaxis
import numpy as np k = k[..., np.newaxis]
or
k = k[..., None]
(See the documentation on slicing).