我有以下4个矩阵:
>>> a
array([[0., 0.],
[0., 0.]])
>>> b
array([[1., 1.],
[1., 1.]])
>>> c
array([[2., 2.],
[2., 2.]])
>>> d
array([[3., 3.],
[3., 3.]])
我正在创建另一个矩阵来包含它们:
>>> e = np.array([[a,b], [c,d]])
>>> e.shape
(2, 2, 2, 2)
我想“取消层次结构”,并将e
重塑为一个4x4矩阵,如下所示:
0 0 1 1
0 0 1 1
2 2 3 3
2 2 3 3
然而,当我运行e.reshape((4,4))
时,我得到以下矩阵:
>>> e.reshape((4,4))
array([[0., 0., 0., 0.],
[1., 1., 1., 1.],
[2., 2., 2., 2.],
[3., 3., 3., 3.]])
有没有一种方法可以通过取消层次结构,而不是通过我当前获得的索引,将(2,2,2,2)
矩阵重塑为(4,4)
矩阵?
2条答案
按热度按时间wvyml7n51#
尝试
这将水平连接内部列表,并进行垂直堆栈。
或者,您可以交换
e
的两个轴,然后重新整形。block
相当于:wmtdaxz32#
是的,你可以用numpy的**
.concatenate
**函数来实现:在那里你得到以下矩阵作为结果: