Hello I have 3 numpy arrays as given below.
>>> print A
[[ 1. 0. 0.]
[ 3. 0. 0.]
[ 5. 2. 0.]
[ 2. 0. 0.]
[ 1. 2. 1.]]
>>> pri
>>> import numpy as np
>>> A = np.array([[1,0,0],[3,0,0],[5,2,0],[2,0,0],[1,2,1]])
>>> B = np.array([[5,9,9],[37,8,9],[49,8,3],[3,3,1],[4,4,5]])
>>> C = np.array([[0,0,0],[0,6,0],[1,4,6],[6,2,0],[0,5,4]])
>>> np.array([A,B,C]).swapaxes(1,0)
array([[[ 1, 0, 0],
[ 5, 9, 9],
[ 0, 0, 0]],
[[ 3, 0, 0],
[37, 8, 9],
[ 0, 6, 0]],
[[ 5, 2, 0],
[49, 8, 3],
[ 1, 4, 6]],
[[ 2, 0, 0],
[ 3, 3, 1],
[ 6, 2, 0]],
[[ 1, 2, 1],
[ 4, 4, 5],
[ 0, 5, 4]]])
I did a comparison of the answers using Ipython %%timeit
:
np.array([A,B,C]).swapaxes(1,0)
100000 loops, best of 3: 18.2 us per loop
np.dstack((A,B,C)).swapaxes(1,2)
100000 loops, best of 3: 19.8 us per loop
np.hstack([A,B,C]).reshape((5,3,3))
100000 loops, best of 3: 14.8 us per loop
np.hstack([A[:, None, :], B[:, None, :], C[:, None, :]])
100000 loops, best of 3: 17.2 us per loop
It looks like @Viktor Kerkez's answer is fastest.