# Numpy matrix to array

Posted on

### Question :

Numpy matrix to array

I am using numpy. I have a matrix with 1 column and N rows and I want to get an array from with N elements.

For example, if i have `M = matrix([, , , ])`, I want to get `A = array([1,2,3,4])`.

To achieve it, I use `A = np.array(M.T)`. Does anyone know a more elegant way to get the same result?

Thanks!

If you’d like something a bit more readable, you can do this:

``````A = np.squeeze(np.asarray(M))
``````

Equivalently, you could also do: `A = np.asarray(M).reshape(-1)`, but that’s a bit less easy to read.

``````result = M.A1
``````

https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.matrix.A1.html

``````matrix.A1
1-d base array
``````

``````A, = np.array(M.T)
``````

depends what you mean by elegance i suppose but thats what i would do

You can try the following variant:

``````result=np.array(M).flatten()
``````

``````np.array(M).ravel()
``````

If you care for speed; But if you care for memory:

``````np.asarray(M).ravel()
``````

Or you could try to avoid some temps with

``````A = M.view(np.ndarray)
A.shape = -1
``````

First, `Mv = numpy.asarray(M.T)`, which gives you a 4×1 but 2D array.
Then, perform `A = Mv[0,:]`, which gives you what you want. You could put them together, as `numpy.asarray(M.T)[0,:]`.
``````A = np.ravel(M).T