代码之家  ›  专栏  ›  技术社区  ›  mhooper

Python矩阵单位乘

  •  0
  • mhooper  · 技术社区  · 5 年前

    a = [[3],
         [12],
         [15]]
    

    我想把它变成

    b = [[3, 0, 0],
         [0, 12,0],
         [0, 0, 15]]
    

    高中毕业已经有一段时间了,我的矩阵乘法有点不对劲。任何帮助都会很好。

    2 回复  |  直到 5 年前
        1
  •  1
  •   crayxt    5 年前

    可以使用numpy函数

    >>> import numpy as np
    >>> import pandas as pd
    >>> b = np.zeros((3,3), dtype=int)
    >>> np.fill_diagonal(b, [3, 12, 15])
    >>> b
    array([[ 3,  0,  0],
           [ 0, 12,  0],
           [ 0,  0, 15]])
    

    如果你需要数据帧

    >>> pd.DataFrame(b)
       0   1   2
    0  3   0   0
    1  0  12   0
    2  0   0  15
    
        2
  •  2
  •   Mad Physicist    5 年前

    你有一些清单。如果你同意使用numpy,

    b = np.diag(a)
    

    np.dot(a, np.ones((1, 3)))
    

    A (3, 1) (1, 3) yields a (3, 3)`.