На этом шаге мы продолжим знакомство с модулем NumPy.
Вам нужно произвести матричные операции и операции линейной алгебры, такие как умножение матриц, поиск определителей, решение линейных уравнений и т. д.
Библиотека NumPy содержит объект matrix. Матрицы - это нечто похожее на объекты массивов, описанные в предыдущем рецепте, но вычисления над ними следуют законам линейной алгебры. Вот несколько примеров их основных возможностей:
>>> import numpy as np >>> m = np.matrix([[1,-2,3],[0,4,5],[7,8,-9]]) >>> m matrix([[ 1, -2, 3], [ 0, 4, 5], [ 7, 8, -9]]) >>> # Возвращает транспонированную матрицу >>> m.T matrix([[ 1, 0, 7], [-2, 4, 8], [ 3, 5, -9]]) >>> # Возвращает инвертированную матрицу >>> m.I matrix([[ 0.33043478, -0.02608696, 0.09565217], [-0.15217391, 0.13043478, 0.02173913], [ 0.12173913, 0.09565217, -0.0173913 ]]) >>> # Создаем вектор и умножаем на матрицу >>> v = np.matrix([[2],[3],[4]]) >>> v matrix([[2] , [3] , [4] ]) >>> m * v matrix([[ 8], [32], [ 2]]) >>>
Другие операции можно найти в субпакете numpy.linalg. Например:
>>> import numpy.linalg >>> # Детерминант >>> numpy.linalg.det(m) -229.99999999999983 >>> # Собственные значения >>> numpy.linalg.eigvals(m) array([-13.11474312, 2.75956154, 6.35518158]) >>> # Решение для x в mx = v >>> x = numpy.linalg.solve(m, v) >>> x matrix([[ 0.96521739], [ 0.17391304], [ 0.46086957]]) >>> m * x matrix([[ 2.], [ 3.], [ 4.]]) >>> v matrix([[2] , [3] , [4] ]) >>>
Линейная алгебра, очевидно, является слишком обширной темой, чтобы обсуждать ее в этом сборнике рецептов. Однако если вам нужно работать с матрицами и векторами, начните именно с NumPy. За информацией о библиотеке отправляйтесь на https://numpy.org/.
На следующем шаге мы рассмотрим cлучайный выбор.