numpy.diag
numpy.diag(v, k=0) [source]
提取对角线或构造对角线数组。
如果使用此函数提取对角线并希望写入结果数组,请参见numpy.diagonal
的更详细的文档。 返回的是副本还是视图取决于您使用的numpy版本。
参数 : | v :array_like 如果 则返回其第 如果 则返回一个二维数组, 其中 k : 对角线问题。 默认值为 对于主对角线上方的对角线, 请使用 对于主对角线下方的对角线, 请使用 |
返回值 : | 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)