Различные способы создания матрицы Python с единицами на диагонали

В Python матрица — это двумерный массив, состоящий из строк и столбцов. Иногда необходимо создать матрицу с единицами только на диагональных элементах. В этой статье мы рассмотрим различные методы выполнения этой задачи на примерах кода Python.

Метод 1: использование вложенных циклов

def create_matrix_diagonal(n):
    matrix = [[0] * n for _ in range(n)]
    for i in range(n):
        matrix[i][i] = 1
    return matrix
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

Метод 2: использование NumPy

import numpy as np
def create_matrix_diagonal(n):
    matrix = np.eye(n)
    return matrix
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

Метод 3: использование SciPy

import scipy.sparse as sp
def create_matrix_diagonal(n):
    matrix = sp.eye(n).toarray()
    return matrix
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

Метод 4. Использование диагональной функции NumPy

import numpy as np
def create_matrix_diagonal(n):
    matrix = np.diag([1] * n)
    return matrix
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

Метод 5: использование понимания списка

def create_matrix_diagonal(n):
    matrix = [[1 if i == j else 0 for j in range(n)] for i in range(n)]
    return matrix
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

Метод 6: использование разреженной матрицы

import scipy.sparse as sp
def create_matrix_diagonal(n):
    matrix = sp.lil_matrix((n, n))
    for i in range(n):
        matrix[i, i] = 1
    return matrix.toarray()
# Example usage
matrix = create_matrix_diagonal(4)
print(matrix)

В этой статье мы рассмотрели шесть различных методов создания матрицы Python, в которых используются только диагональные элементы. Эти методы включают использование вложенных циклов, NumPy, SciPy, диагональной функции NumPy, понимания списков и разреженных матриц. В зависимости от ваших конкретных требований и доступных вам библиотек вы можете выбрать метод, который лучше всего соответствует вашим потребностям.