首页 > 解决方案 > 如何使用列矩阵制作矩阵?

问题描述

我想知道如何使用列矩阵制作矩阵。

例如,我有一个[1,2,3]列矩阵。

我想做矩阵

[ 1 0 0

  2 1 0 

  3 2 1

  0 3 2

  0 0 3 ]

像这样。

那么我该怎么做呢?是否有一些模块可以在 python 中制作这个矩阵?

标签: python

解决方案


尝试使用numpynp.zeros

import numpy as np 

def get_matrix(col):
    mat = np.zeros((len(col) * 2 - 1, len(col)))
    for i in range(len(col)):
        mat[i : i + len(col), i] = col
    return mat

col = [1, 2, 3]
print(get_matrix(col))

印刷:

array([[1., 0., 0.],
       [2., 1., 0.],
       [3., 2., 1.],
       [0., 3., 2.],
       [0., 0., 3.]])

col = [1, 2, 3, 4, 5]
print(get_matrix(col))

印刷

array([[1., 0., 0., 0., 0.],
       [2., 1., 0., 0., 0.],
       [3., 2., 1., 0., 0.],
       [4., 3., 2., 1., 0.],
       [5., 4., 3., 2., 1.],
       [0., 5., 4., 3., 2.],
       [0., 0., 5., 4., 3.],
       [0., 0., 0., 5., 4.],
       [0., 0., 0., 0., 5.]])

正如预期的那样,我相信。否则,请更准确地了解如何构建矩阵。

也可能有一个更聪明(更有效?)的方法来使用纯 numpy 来做到这一点,但我相信这个循环是非常可读的并且不是那么低效


推荐阅读