Линейная алгебра в Python: методы и примеры кода

Вот несколько методов работы с линейной алгеброй в Python, а также примеры кода:

  1. NumPy:
    NumPy – популярная библиотека для числовых вычислений на Python, предоставляющая полный набор функций для операций линейной алгебры.

    Пример: вычисление скалярного произведения двух векторов с помощью NumPy:

    import numpy as np
    # Define two vectors
    vector1 = np.array([1, 2, 3])
    vector2 = np.array([4, 5, 6])
    # Compute the dot product
    dot_product = np.dot(vector1, vector2)
    print(dot_product)
  2. SciPy:
    SciPy — еще одна мощная библиотека для научных вычислений на Python. Он основан на NumPy и предоставляет дополнительные функции для линейной алгебры, оптимизации, обработки сигналов и многого другого.

    Пример: решение системы линейных уравнений с помощью SciPy:

    import numpy as np
    from scipy.linalg import solve
    # Define the matrix and the right-hand side of the equation
    A = np.array([[2, 3], [4, 1]])
    b = np.array([6, 5])
    # Solve the equation Ax = b
    x = solve(A, b)
    print(x)
  3. SymPy:
    SymPy — это библиотека Python для символьной математики. Он предоставляет инструменты для символьной алгебры, исчисления и линейной алгебры.

    Пример: поиск собственных значений и собственных векторов матрицы с помощью SymPy:

    from sympy import Matrix
    # Define a matrix
    A = Matrix([[1, 2], [3, 4]])
    # Compute the eigenvalues and eigenvectors
    eigenvalues = A.eigenvals()
    eigenvectors = A.eigenvects()
    print(eigenvalues)
    print(eigenvectors)
  4. scikit-learn:
    scikit-learn — широко используемая библиотека машинного обучения на Python. Он включает в себя различные модули предварительной обработки данных, выбора и оценки моделей, включая утилиты для матричной декомпозиции.

    Пример: выполнение разложения по сингулярному значению (SVD) с помощью scikit-learn:

    import numpy as np
    from sklearn.decomposition import TruncatedSVD
    # Define a matrix
    X = np.array([[1, 2], [3, 4], [5, 6]])
    # Perform SVD
    svd = TruncatedSVD(n_components=1)
    svd.fit(X)
    # Get the singular values and vectors
    singular_values = svd.singular_values_
    components = svd.components_
    print(singular_values)
    print(components)