Python - 矩阵单位乘法

Python - Matrix Identity multiplication

我有一个数据框 a 是

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

我想把它变成

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

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

您可以使用 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]])

如果你需要一个DataFrame

>>> pd.DataFrame(b)
   0   1   2
0  3   0   0
1  0  12   0
2  0   0  15

你有一些清单。如果你可以使用 numpy,

b = np.diag(a)

如果你想使用矩阵乘法,你可以这样做

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

A (3, 1) 矩阵乘以 (1, 3) 得到 (3, 3).