Похоже, вы ищете конкретное количество столбцов для формирования блоков, а затем получаете элементы в каждом блоке и затем переходите к следующим.Итак, имея в виду, вот один из способов -
In [148]: a
Out[148]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
In [149]: ncols = 2 # no. of cols to be considered for each block
In [150]: a.reshape(a.shape[0],-1,ncols).swapaxes(0,1).ravel()
Out[150]: array([ 0, 1, 4, 5, 8, 9, 2, 3, 6, 7, 10, 11])
Мотивация подробно обсуждается в this post
.