Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Продолжение статей по numpy
Линейная алгебра на numpy
Сегодня мы рассмотрим ряд функций numpy, относящейся непосредственно к линейной алгебре. Кстати, в прошлой статье мы познакомились с одной такой функцией numpy.dot. Особенность такова, что часть функций есть непосредственно в numpy, а часть в модуле numpy.linalg. Ну, здесь больших проблем нет.
Сразу скажу, что сегодня перечислю далеко не все функции numpy по линейной алгебре. А что делать? numpy велик и ужасен!
Функция numpy.diag
Функция возвращает диагональные элементы массива
#!/usr/bin/python3
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.diag(a))
Результат выполнения
[1 5 9]
Функция numpy.trace
Вычисляет сумму элементов главной диагонали
#!/usr/bin/python3
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.trace(a))
Результат выполнения
15
Функция numpy.linalg.det
Функция вычисляет детерминант матрицы.
#!/usr/bin/python3
import numpy as np
a = np.array([[1, 2], [3, 4]])
print(int(np.linalg.det(a)))
Результат выполнения
-2
int() я использовал для отбрасывания не нужной дробной части, которая появляется в силу особенностей вычисления float-чисел.
Функция np.linalg.inv
Получает обратную матрица данной
#!/usr/bin/python3
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.linalg.inv(a)
print(b)
# проверим
c = np.dot(a, b).astype(np.int64)
print(c)
Результат выполнения
[[-2. 1. ]
[ 1.5 -0.5]]
[[1 0]
[0 0]]
Следует отметить также функцию numpy.astype() которая приводит все элементы массива к заданному типу.
Функция numpy.linalg.solve
Функция позволяет решать систему линейных уравнений
#!/usr/bin/python3
import numpy as np
# 3*x + 6*y = 5
# -1*x + 2*y = 2
a = np.array([[3, 6], [-1, 2]])
b = np.array([5, 2])
xy = np.linalg.solve(a, b)
print("x=", xy[0])
print("y=", xy[1])
Результат выполнения
x= -0.16666666666666666
y= 0.9166666666666666
Я продолжу серию статей по библиотеке numpy
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.