Python numpy.diag函数方法的使用

numpy.diag 是 NumPy 库中用于创建或提取对角线数组的函数。当输入是一个二维数组时,numpy.diag 可以提取对角线元素。当输入是一维数组时,numpy.diag 可以创建一个对角线数组。本文主要介绍一下NumPy中diag方法的使用。

numpy.diag

numpy.diag(v, k=0)     [source]

提取对角线或构造对角线数组。

如果使用此函数提取对角线并希望写入结果数组,请参见numpy.diagonal的更详细的文档。 返回的是副本还是视图取决于您使用的numpy版本。

参数 :

v :array_like

如果v是二维数组,

则返回其第k个对角线的副本。

 如果v是一维数组,

则返回一个二维数组,

其中v在第k个对角线上。

kint, 可选

对角线问题。 默认值为0

对于主对角线上方的对角线,

请使用k> 0

对于主对角线下方的对角线,

请使用k <0

返回值 :

out :ndarray

提取的对角线或构造对角线数组。

例子

1)从二维数组中提取对角线元素

import numpy as np

# 创建一个二维数组
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

# 提取主对角线元素
diagonal = np.diag(matrix)

print("二维数组:")
print(matrix)
print("主对角线元素:")
print(diagonal)

2)创建对角线数组

import numpy as np

# 创建一个一维数组
diagonal_elements = np.array([1, 2, 3])

# 创建一个对角线数组
diagonal_matrix = np.diag(diagonal_elements)

print("一维数组:")
print(diagonal_elements)
print("对角线数组:")
print(diagonal_matrix)

3)提取其他对角线元素

可以通过设置 k 参数来提取相对于主对角线的其他对角线元素。k 为正值表示上对角线,负值表示下对角线。

import numpy as np

# 创建一个二维数组
matrix = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]])

# 提取上对角线(k=1)
upper_diagonal = np.diag(matrix, k=1)

# 提取下对角线(k=-1)
lower_diagonal = np.diag(matrix, k=-1)

print("二维数组:")
print(matrix)
print("上对角线元素 (k=1):")
print(upper_diagonal)
print("下对角线元素 (k=-1):")
print(lower_diagonal)

4)使用示例

import numpy as np

# 创建一个 3x3 的二维数组
x = np.arange(9).reshape((3, 3))
print("二维数组 x:")
print(x)

# 提取主对角线元素
main_diagonal = np.diag(x)
print("主对角线元素:")
print(main_diagonal)

# 提取上对角线元素(k=1)
upper_diagonal = np.diag(x, k=1)
print("上对角线元素 (k=1):")
print(upper_diagonal)

# 提取下对角线元素(k=-1)
lower_diagonal = np.diag(x, k=-1)
print("下对角线元素 (k=-1):")
print(lower_diagonal)

# 创建一个只包含主对角线元素的对角线数组
diagonal_matrix = np.diag(np.diag(x))
print("由主对角线元素创建的对角线数组:")
print(diagonal_matrix)
推荐阅读
cjavapy编程之路首页