Or `x.ravel(order='K')`, "to view the elements in the order they occur in memory, except for reversing the data when strides are negative" ([docs](docs.scipy.org/doc/numpy/reference/generated/numpy.ravel.html)).

`X.squeeze()` has the same guarantee of never copying, but leaves negative strides alone which may impact BLAS performance. It's a tad faster, though.