📜  Python中的 numpy.diag()(1)

📅  最后修改于: 2023-12-03 15:04:33.188000             🧑  作者: Mango

Numpy.diag()函数介绍

在Python中,NumPY(Numerical Python)是一个流行的数值计算库,可以进行矩阵运算、线性代数、随机数生成等多种操作,其中numpy.diag()是numpy的一个重要函数,本文将向您介绍如何运用它。

概述

numpy.diag(v, k=0)函数将一个一维数组返回一个对角矩阵或从一个对角矩阵中提取对角线元素。我们可以使用k参数来改变对角线的位置。

参数说明
  • v:一维数组或二维数组,从对角线提取元素或用于创建对角线数组。
  • k:对角线偏移。对于提取操作,k指定对角线的偏移量。 对于创建操作,k指定对角线的位置。
返回值说明

numpy.diag()返回一个对角矩阵或从一个二维数组中提取对角线。

Markdown代码片段:

numpy.diag(v, k=0)

假设有以下代码:

import numpy as np
a = np.array([[1, 2], [3, 4]])
print(np.diag(a))

运行这段代码,程序会输出以下结果:

[1 4]

解释:对于一个二维数组,该函数将返回矩阵的对角线元素。在这个例子中,对角线元素为1和4。

另外,我们还可以通过numpy.diag()创建一个对角矩阵,例如:

import numpy as np
print(np.diag([1, 2, 3]))

运行这段代码,程序会输出以下结果:

[[1 0 0]
 [0 2 0]
 [0 0 3]]

解释:该函数将接收一个一维数组,将其视为对角线元素,创建一个对应的对角矩阵,这里传入的是[1, 2, 3],结果为一个3x3的对角矩阵。

需要注意的是,k参数可以指定对角线的位置。例如:

import numpy as np
print(np.diag([1, 2, 3], k=1))

运行这段代码,程序会输出以下结果:

[[0 1 0 0]
 [0 0 2 0]
 [0 0 0 3]
 [0 0 0 0]]

解释:k=1指定的是从主对角线(即左上角到右下角的对角线)上移动一格的位置,也就是在对角线的右上方创建一个对角线元素。最后返回的是一个4x4的矩阵,因为我们创建的对角线矩阵位于整个矩阵的顶部一行。