1K подписчиков

Программирование на языке Python. Линейная алгебра в библиотеке numpy

Доброго времени суток, читатели, зрители моего канала 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

Ну, пока всё!

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

Вы программист? От чего же вы не знаете математики?
Вы программист? От чего же вы не знаете математики?