Create 2 dimensional array with 2 one dimensional array

If you wish to combine two 10 element one-dimensional arrays into a two-dimensional array, np.vstack((tp, fp)).T will do it.

np.vstack((tp, fp)) will return an array of shape (2, 10), and the T attribute returns the transposed array with shape (10, 2) (i.e., with the two one-dimensional arrays forming columns rather than rows).

>>> tp = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> tp.ndim
1
>>> tp.shape
(10,)

>>> fp = np.array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> fp.ndim
1
>>> fp.shape
(10,)

>>> combined = np.vstack((tp, fp)).T
>>> combined
array([[ 0, 10],
       [ 1, 11],
       [ 2, 12],
       [ 3, 13],
       [ 4, 14],
       [ 5, 15],
       [ 6, 16],
       [ 7, 17],
       [ 8, 18],
       [ 9, 19]])

>>> combined.ndim
2
>>> combined.shape
(10, 2)

Another way is to use np.transpose. It seems to be used occasionally, but it is not readable, so it is a good idea to use ijmarshall's answer.

import numpy as np

tp = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
fp = np.array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
combined = np.transpose((tp, fp))
combined
# Out[3]:
# array([[ 0, 10],
#        [ 1, 11],
#        [ 2, 12],
#        [ 3, 13],
#        [ 4, 14],
#        [ 5, 15],
#        [ 6, 16],
#        [ 7, 17],
#        [ 8, 18],
#        [ 9, 19]])
combined.ndim
# Out[4]: 2
combined.shape
# Out[5]: (10, 2)

You can use NumPy's column_stack:

np.column_stack((tp, fp))