С vstack
и транспонирование T
:
n = 256
a = np.arange(n) + 0
b = np.arange(n) + 1
c = np.arange(n) + 2
d = np.arange(n) + 3
x = np.vstack([a,b,c,d]).T
x
Выход:
array([[ 0, 1, 2, 3],
[ 1, 2, 3, 4],
[ 2, 3, 4, 5],
...,
[253, 254, 255, 256],
[254, 255, 256, 257],
[255, 256, 257, 258]])
Или, альтернативно, существует метод column_stack
:
x = np.column_stack([a,b,c,d])
И если вы хотите получить его как фактический matrix
вместо ndarray
:
m = np.matrix([a,b,c,d]).T
Обновление:
Чтобы сделать это с помощью цикла, вы можете собрать свои массивы в список и затем сложить их вместе:
n = 256
l = []
for i in range(4):
l.append(np.arange(n) + i)
x = np.vstack(l).T
x
Или, альтернативно, составлять их по одному на каждом шаге цикла и транспонировать после цикла:
n = 256
x = np.arange(n)
for i in range(1,4):
x = np.vstack([x, np.arange(n) + i])
x = x.T
x