如何在 Python 中创建具有较短对角线列表的对角矩阵?

How to create a diagonal matrix with a shorter list of diagonals in Python?

假设我有一个对角线条目列表,d,是否有一种简单的方法来创建像 A 这样的对角线矩阵?我可以使用 np.diag(d) 指定结果的维度吗?

import numpy as np

d = np.array([1,2])

A = np.array([[1,0,0,0], [0,2,0,0], [0,0,0,0], [0,0,0,0]])

很简单:

A = np.zeros((4,4))
A[:2, :2] = np.diag(d)