numpy.diag()
是一个在 NumPy 库中的函数,用于从给定的二维数组中提取对角线元素,或者创建一个新的二维数组,其对角线元素为给定的一维数组
提取对角线元素:
如果传递一个二维数组(或矩阵)给 numpy.diag()
,则它将返回该数组的主对角线元素。可以通过设置 k
参数来获取不同的对角线元素。例如,k=1
表示上对角线,k=-1
表示下对角线。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal_elements = np.diag(a)
print(diagonal_elements) # 输出:[1 5 9]
创建对角线数组:
如果传递一个一维数组给 numpy.diag()
,则它将创建一个新的二维数组,其对角线元素为给定的一维数组。可以通过设置 k
参数来指定对角线的位置。
import numpy as np
a = np.array([1, 2, 3])
diagonal_matrix = np.diag(a)
print(diagonal_matrix)
# 输出:
# [[1 0 0]
# [0 2 0]
# [0 0 3]]
使用其他库:
除了 NumPy 之外,还有其他库提供了类似的功能。例如,SciPy 和 Pandas 也提供了类似的函数。这些库的函数可能会有所不同,但基本用法与 NumPy 类似。
import scipy.linalg
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal_elements = scipy.linalg.diagsvd(a, compute_uv=False)
print(diagonal_elements) # 输出:[1 5 9]
请注意,这里提供的示例代码仅用于演示目的。在实际应用中,您可能需要根据具体需求调整代码。