How do I convert an array of arrays into a multi-dimensional array in Python? -


i have numpy array (of length x) of arrays, of of same length (y), has type "object" , has dimension (x,). "convert" array of dimension (x, y) type of elements of member arrays ("float").

the way can see "manually" like

[x x in my_array] 

is there better idiom accomplishing "conversion"?


for example have like:

array([array([ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]),        array([ 0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]),        array([ 0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.]), ...,        array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.]),        array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.]),        array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.])], dtype=object) 

which has shape (x,) rather (x, 10).

you can concatenate arrays on new axis. example:

in [1]: a=np.array([1,2,3],dtype=object)    ...: b=np.array([4,5,6],dtype=object) 

to make array of arrays can't combine them array, deleted answer did:

in [2]: l=np.array([a,b]) in [3]: l out[3]:  array([[1, 2, 3],        [4, 5, 6]], dtype=object) in [4]: l.shape out[4]: (2, 3) 

instead have create empty array of right shape, , fill it:

in [5]: arr = np.empty((2,), object) in [6]: arr[:]=[a,b] in [7]: arr out[7]: array([array([1, 2, 3], dtype=object),                 array([4, 5, 6], dtype=object)],                dtype=object) 

np.stack acts np.array, uses concatenate:

in [8]: np.stack(arr) out[8]:  array([[1, 2, 3],        [4, 5, 6]], dtype=object) in [9]: _.astype(float) out[9]:  array([[ 1.,  2.,  3.],        [ 4.,  5.,  6.]]) 

we use concatenate, hstack or vstack combine arrays on different axes. treat array of arrays list of arrays.

if arr 2d (or higher) have ravel first.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -