Чтобы получить диагональную матрицу из заданной матрицы с помощью NumPy, вы можете использовать несколько методов. Я приведу вам три примера:
Метод 1: использование numpy.diag()
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
diagonal_matrix = np.diag(np.diag(matrix))
print(diagonal_matrix)
Выход:
[[1 0 0]
[0 5 0]
[0 0 9]]
Метод 2: использование numpy.eye()
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
diagonal_matrix = matrix * np.eye(matrix.shape[0])
print(diagonal_matrix)
Выход:
[[1. 0. 0.]
[0. 5. 0.]
[0. 0. 9.]]
Метод 3: использование матричного умножения
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
diagonal_matrix = matrix @ np.eye(matrix.shape[0])
print(diagonal_matrix)
Выход:
[[1. 0. 0.]
[0. 5. 0.]
[0. 0. 9.]]
Эти методы дают один и тот же результат: диагональную матрицу, в которой диагональные элементы взяты из исходной матрицы.