scipy.linalg.block_diag
、scipy.sparse.diags
和 numpy.diag
是 Python 中用于处理矩阵对角线相关操作的函数三个不同函数,它们各自有不同的功能和适用场景。以下是对它们的详细对比:
1. numpy.diag
numpy.diag
是 NumPy 库中的一个函数,主要用于处理一维或二维数组的对角线元素。
功能
-
从一维数组创建对角矩阵:将一维数组的元素放置在二维矩阵的对角线上。
-
从二维矩阵提取对角线元素:提取二维矩阵的主对角线或指定对角线的元素。
语法
numpy.diag(v, k=0)
-
v
:输入数组(一维或二维)。 -
k
:对角线的索引(主对角线为 0,上方为正,下方为负)。
特点
-
返回的是一个 密集矩阵(
numpy.ndarray
)。 -
适用于简单的对角线操作,如创建对角矩阵或提取对角线元素。