有没有办法用第一列和列之间的关系建立一个矩阵?

2024-09-29 06:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图构建一个numpy矩阵B,知道它的第一列和列之间的关系

更具体地说,我有B的第一个类似列的数组([1],[1],[1],[1]),另一个已知的矩阵A,关系是B(t+1)=B(t)+A(t+1)。 其中B(t)表示B的t列。有没有什么方法可以不使用for循环而使用矩阵计算来构建B?你知道吗

我试过了np.einsum公司但它似乎只能用已知的矩阵进行计算

A=matrix([[1, 2, 3, 4], [2, 4, 5, 6], [3, 5, 6, 7], [4, 6, 5, 4]])

B=matrix([[1., 0., 0., 0.], [1., 0., 0., 0.], [1., 0., 0., 0.], [1., 0., 0., 0.]])

现在,我想填充B的列(除了第一列)。你知道吗

我期待决赛

B=matrix([[ 1., 3., 6., 10.], [ 1., 5., 10., 16.], [ 1., 6., 12., 19.], [ 1., 7., 12., 16.]])

谢谢你!你知道吗


Tags: 方法numpyfor关系np公司矩阵数组
1条回答
网友
1楼 · 发布于 2024-09-29 06:25:56

您可以通过堆叠第一行B和第一行A以外的所有行来构建新矩阵。然后您可以使用^{}来进行累积和:

A=np.matrix([[1, 2, 3, 4],
          [2, 4, 5, 6],
          [3, 5, 6, 7],
          [4, 6, 5, 4]])

B=np.matrix([[1., 0., 0., 0.],
          [1., 0., 0., 0.],
          [1., 0., 0., 0.],
          [1., 0., 0., 0.]])

np.cumsum(np.hstack([B[:,:1], A[:,1:]]), axis=1)

结果:

matrix([[ 1.,  3.,  6., 10.],
        [ 1.,  5., 10., 16.],
        [ 1.,  6., 12., 19.],
        [ 1.,  7., 12., 16.]])

相关问题 更多 >