IMHO using tuple math here is pretty opaque.  For example, this is from `np.random.multivariate_normal`:

```
    Given a shape of, for example, ``(m,n,k)``, ``m*n*k`` samples are
    generated, and packed in an `m`-by-`n`-by-`k` arrangement.  Because
    each sample is `N`-dimensional, the output shape is ``(m,n,k,N)``.
    If no shape is specified, a single (`N`-D) sample is returned.
```