1. I prefer the solution you can find in pyGAUSS: def vec(x): return transpose([ravel(transpose(x))]) def vecr(x): return transpose([ravel(x)]) In particular, I prefer to get back a 2-D array. 2. I suppose someone familiar with tensors should address the proper generalization beyond 2-D inputs. fwiw, Alan Isaac