Я не могу играть с вашими изображениями, поэтому я сгенерирую список отличительных (2,2) массивов:
In [412]: alist = [np.arange(i,i+4).reshape(2,2) for i in range(6)]
In [413]: alist
Out[413]:
[array([[0, 1],
[2, 3]]), array([[1, 2],
[3, 4]]), array([[2, 3],
[4, 5]]), array([[3, 4],
[5, 6]]), array([[4, 5],
[6, 7]]), array([[5, 6],
[7, 8]])]
С dstack
мы получим (2,2,6 ) array
In [414]: arr = np.dstack(alist)
In [415]: arr
Out[415]:
array([[[0, 1, 2, 3, 4, 5],
[1, 2, 3, 4, 5, 6]],
[[2, 3, 4, 5, 6, 7],
[3, 4, 5, 6, 7, 8]]])
Изменение формы (3,2) дает:
In [417]: arr.reshape(2,2,3,2)
Out[417]:
array([[[[0, 1],
[2, 3],
[4, 5]],
[[1, 2],
[3, 4],
[5, 6]]],
[[[2, 3],
[4, 5],
[6, 7]],
[[3, 4],
[5, 6],
[7, 8]]]])
Похоже, вас не устраивает этот макет (ваши правки немного неясны). Мы можем транспонировать значения
In [419]: arr.reshape(2,2,2,3).transpose(0,1,3,2)
Out[419]:
array([[[[0, 3],
[1, 4],
[2, 5]],
[[1, 4],
[2, 5],
[3, 6]]],
[[[2, 5],
[3, 6],
[4, 7]],
[[3, 6],
[4, 7],
[5, 8]]]])
С этим последним расположением
In [431]: _419[:,:,2,0]
Out[431]:
array([[2, 3],
[4, 5]])
In [432]: _413[2] # alist
Out[432]:
array([[2, 3],
[4, 5]])
In [435]: _419[:,:,0,1]
Out[435]:
array([[3, 4],
[5, 6]])
In [436]: _413[3]
Out[436]:
array([[3, 4],
[5, 6]])