How to convert ndarray to array?

I'm using pandas.Series and np.ndarray.

The code is like this

>>> t array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) >>> pandas.Series(t) Exception: Data must be 1-dimensional >>> 

And I trie to convert it into 1-dimensional array:

>>> tt = t.reshape((1,-1)) >>> tt array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) 

tt is still multi-dimensional since there are double '['.

So how do I get a really convert ndarray into array?

After searching, it says they are the same. However in my situation, they are not working the same.

3 Answers

An alternative is to use np.ravel:

>>> np.zeros((3,3)).ravel() array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.]) 

The importance of ravel over flatten is ravel only copies data if necessary and usually returns a view, while flatten will always return a copy of the data.

To use reshape to flatten the array:

tt = t.reshape(-1) 
0

Use .flatten:

>>> np.zeros((3,3)) array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]) >>> _.flatten() array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.]) 

EDIT: As pointed out, this returns a copy of the input in every case. To avoid the copy, use .ravel as suggested by @Ophion.

2
tt = array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]]) oneDvector = tt.A1 

This is the only approach which solved the problem of double brackets, that is conversion to 1D array that nd matrix.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like