Не нужно использовать numpy
.Python zip
делает хорошую работу:
In [606]: a = [1, 1, 1]
...: b = [2, 2, 2]
...: c = [3, 3, 3]
In [607]: abc = list(zip(a,b,c))
In [608]: abc
Out[608]: [(1, 2, 3), (1, 2, 3), (1, 2, 3)]
Но если ваше сердце настроено на использование numpy
, хороший способ - создать двумерный массив и транспонировать его:
In [609]: np.array((a,b,c))
Out[609]:
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3]])
In [610]: np.array((a,b,c)).T
Out[610]:
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
Другие показывают, как это сделать с stack
и column_stack
, но под ними стоит concatenate
.Так или иначе, они превращают списки в двумерные массивы, которые можно объединить по оси = 1, например,
In [616]: np.concatenate([np.array(x)[:,None] for x in [a,b,c]], axis=1)
Out[616]:
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])