gpt4 book ai didi

python - 以分块形式组合 Numpy 数组

转载 作者:太空狗 更新时间:2023-10-30 00:50:38 24 4
gpt4 key购买 nike

我有三个 Numpy 矩阵

a = np.matrix('1 2; 3 4')

b = np.matrix('5 6 7; 8 9 10')

c = np.matrix('1 2 3; 4 5 6; 7 8 9')

我想制作以下 block 矩阵:

M = [a b ; 0 c],

其中 0 代表具有相关维度的零矩阵。

最佳答案

创建 block 矩阵的简单方法是 numpy.bmat (正如@inquisitiveIdiot 指出的那样)。根据您要创建的 block 矩阵判断,您需要一个 3x2 的零矩阵:

>>> import numpy as np
>>> z = np.zeros( (3, 2) )

然后,您可以通过将 2x2 block 数组传递给 numpy.bmat 来创建 block 矩阵:

>>> M = np.bmat( [[a, b], [z, c]] )
>>> M
matrix([[ 1., 2., 5., 6., 7.],
[ 3., 4., 8., 9., 10.],
[ 0., 0., 1., 2., 3.],
[ 0., 0., 4., 5., 6.],
[ 0., 0., 7., 8., 9.]])

另一种(IMO 更复杂)方法是使用 numpy.hstacknumpy.vstack .

>>> M = np.vstack( (np.hstack((a, b)), np.hstack((z, c))) )
>>> M
matrix([[ 1., 2., 5., 6., 7.],
[ 3., 4., 8., 9., 10.],
[ 0., 0., 1., 2., 3.],
[ 0., 0., 4., 5., 6.],
[ 0., 0., 7., 8., 9.]])

关于python - 以分块形式组合 Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19712919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com