I am currently looking for method in which i can interleave 2 numpy.ndarray. such that
>>> a = np.random.rand(5,5)
>>> print a
[[ 0.83367208 0.29507876 0.41849799 0.58342521 0.81810562]
[ 0.31363351 0.69468009 0.14960363 0.7685722 0.56240711]
[ 0.49368821 0.46409791 0.09042236 0.68706312 0.98430387]
[ 0.21816242 0.87907115 0.49534121 0.60453302 0.75152033]
[ 0.10510938 0.55387841 0.37992348 0.6754701 0.27095986]]
>>> b = np.random.rand(5,5)
>>> print b
[[ 0.52237011 0.75242666 0.39895415 0.66519185 0.87043142]
[ 0.08624797 0.66193953 0.80640822 0.95403594 0.33977566]
[ 0.13789573 0.84868366 0.09734757 0.06010175 0.48043968]
[ 0.28871551 0.62186888 0.44603741 0.3351644 0.6417847 ]
[ 0.85745394 0.93179792 0.62535765 0.96625077 0.86880908]]
>>>
print c shoule be interleaving each row both matrices
[ 0.83367208 0.52237011 0.29507876 0.75242666 0.41849799 0.39895415 0.58342521 0.66519185 0.81810562 0.87043142]
I have three in total which should be interleaved, but i guess it would be easier to do it two at a time..
but how do i do it easily.. I read some method which used arrays, but i am not sure to do it with ndarrays?
Stack those along the third axis with np.dstack
and reshape back to 2D
-
np.dstack((a,b)).reshape(a.shape[0],-1)
With three arrays or even more number of arrays, simply add in those. Thus, for three arrays, use : np.dstack((a,b,c))
and reshape with c
being the third array.
Sample run -
In [99]: a
Out[99]:
array([[8, 4, 0, 5, 6],
[0, 2, 3, 0, 6],
[4, 4, 0, 6, 5],
[7, 5, 0, 7, 0],
[6, 7, 4, 7, 2]])
In [100]: b
Out[100]:
array([[3, 5, 8, 6, 5],
[5, 6, 8, 8, 4],
[8, 3, 3, 3, 5],
[2, 1, 1, 1, 3],
[5, 7, 7, 5, 7]])
In [101]: np.dstack((a,b)).reshape(a.shape[0],-1)
Out[101]:
array([[8, 3, 4, 5, 0, 8, 5, 6, 6, 5],
[0, 5, 2, 6, 3, 8, 0, 8, 6, 4],
[4, 8, 4, 3, 0, 3, 6, 3, 5, 5],
[7, 2, 5, 1, 0, 1, 7, 1, 0, 3],
[6, 5, 7, 7, 4, 7, 7, 5, 2, 7]])
np.c_
is good for this
a = np.arange(25).reshape(5, 5)
b = -np.arange(25).reshape(5, 5)
c = np.ones((5, 5))
d = np.zeros((5, 5))
np.c_[a.ravel(), b.ravel(), c.ravel(), d.ravel()].ravel()
--->
array([ 0., 0., 1., 0., 1., -1., 1., 0., 2., -2., 1.,
0., 3., -3., 1., 0., 4., -4., 1., 0., 5., -5.,
1., 0., 6., -6., 1., 0., 7., -7., 1., 0., 8.,
-8., 1., 0., 9., -9., 1., 0., 10., -10., 1., 0.,
11., -11., 1., 0., 12., -12., 1., 0., 13., -13., 1.,
0., 14., -14., 1., 0., 15., -15., 1., 0., 16., -16.,
1., 0., 17., -17., 1., 0., 18., -18., 1., 0., 19.,
-19., 1., 0., 20., -20., 1., 0., 21., -21., 1., 0.,
22., -22., 1., 0., 23., -23., 1., 0., 24., -24., 1.,
0.])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.