微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 3D numpy 矩阵重塑为 2D numpy 矩阵,保持行位置

如何解决将 3D numpy 矩阵重塑为 2D numpy 矩阵,保持行位置

作为一个简化的例子,我有一个 3D numpy 矩阵,如下所示:

a = np.array([[[1,2],[4,np.nan],[7,8]],[[7,6],3],[1,0]],[[0,1],[3,np.nan]
               [6,7]],[[8,7],[5,4],[2,1]]])
>>> a.shape
(4,3,2)

我想将此 3D 矩阵 (a) 重塑为 2D 矩阵 (b),同时保持行位置。这是目标:

b = np.array([[1,2,7,6,1,8,np.nan,4,5,1]])
>>> b.shape
(3,8)

我认为我应该能够通过 .reshape().transpose() 的某种组合来实现这一目标吗?但是我对这种矩阵操作的东西还很陌生,这有点令人难以置信。到目前为止,我尝试过的任何东西都无法让我到达那里......

解决方法

您可以先用 transpose 交换前 2 个轴(这样形状将是 (3,4,2)),然后是 reshape

>>> a.transpose(1,2).reshape(3,8)

array([[ 1.,2.,7.,6.,0.,1.,8.,7.],[ 4.,nan,4.,3.,5.,4.],[ 7.,1.]])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。