Вот несколько методов работы с линейной алгеброй в Python, а также примеры кода:
-
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) -
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) -
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) -
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)