Добавить в корзинуПозвонить
Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека numpy. Математические численные функции и другие возможности

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Продолжение статей по numpy Справочник математических функций по numpy и другие возможности Продолжаем изучать библиотеку numpy. Сегодня справочник стандартных математических функций и некоторые другие особенности этой замечательной библиотеки. Справочник числовых математических функций numpy В начале перечислим основные математические функции numpy. Набор, кстати, впечатляет. Сегодня только унарные функции. Бинарные функции библиотеки numpy мы представим в следующей статье. Самое приятное в библиотеке numpy это то, что мы спокойной можем её использовать для обычных величин, тем самым превзойдя возможности стандартной библиотеки math #!/usr/bin/python3
import numpy as np
e = np.exp(1)
print(e) Результат выполнения фрагмента 2.718281828459045 При воздействии на массив функция действует на каждый элемент массива #!/usr/bin/python3
imp
Оглавление

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Программирование на языке Python. Индексная стать на подборку "Некоторые полезные библиотеки для Python"
programmer's notes (python and more)22 апреля 2024

Продолжение статей по numpy

Программирование на языке Python. Индексная статья по теме "Библиотека numpy"
programmer's notes (python and more)4 мая 2024

Справочник математических функций по numpy и другие возможности

Продолжаем изучать библиотеку numpy. Сегодня справочник стандартных математических функций и некоторые другие особенности этой замечательной библиотеки.

Справочник числовых математических функций numpy

В начале перечислим основные математические функции numpy. Набор, кстати, впечатляет. Сегодня только унарные функции.

  • abs, fabs — вычисляет абсолютные значения каждого элементов массива;
  • sqrt — вычисляет квадратный корень из каждого элемента массива;
  • square — вычисляет квадрат каждого элемента массива;
  • exp — вычисляет экспоненту от каждого элемента массива;
  • log, log10, log2, log1p — вычисляет натуральный, десятичный логарифмы, логарифм по основанию 2 и log(1 + x), соответственно;
  • sign — вычисляет знак каждого элемента: 1 (положительный элемент), 0 (ноль), −1 (отрицательный элемент);
  • ceil — вычисляет наименьшее целое число большее либо равное каждого элемента массива;
  • floor — вычисляет наибольшее целое число меньшее либо равное каждого элемента массива;
  • rint — округляет элементы к ближайшим целым сохраняя dtype;
  • modf — возвращает дробные и целые части каждого элемента массива;
  • isnan — возвращает логический массив (True, False), указывающий является каждый элемент входного массива NaN (Not A Number - не число);
  • isfinite, isinf — возвращает булев массив, указывающий является каждый элемент конечным (не inf и не NaN) или бесконечным, соответственно? inf от infinity, т.е. бесконечность;
  • cos, cosh, sin, sinh, tan, tanh — тригонометрические и гиперболические функции;
  • arccos, arccosh, arcsin, arcsinh, arctan, arctanh — обратные тригонометрические и гиперболические функции;
  • logical_not — вычисляет логическое not для каждого элемента массива.

Бинарные функции библиотеки numpy мы представим в следующей статье.

Самое приятное в библиотеке numpy это то, что мы спокойной можем её использовать для обычных величин, тем самым превзойдя возможности стандартной библиотеки math

#!/usr/bin/python3
import numpy as np
e = np.exp(1)
print(e)

Результат выполнения фрагмента

2.718281828459045

При воздействии на массив функция действует на каждый элемент массива

#!/usr/bin/python3
import numpy as np
nmp1 = np.array([0, 1.23, 3.1, 1.111, 4.4])
print(nmp1)
nmp2 = np.modf(nmp1)
print(nmp2)

Результат выполнения программы

[0.    1.23  3.1   1.111 4.4  ]
(array([0.   , 0.23 , 0.1  , 0.111, 0.4  ]), array([0., 1., 3., 1., 4.]))

Обращу внимание, что функция modf() создаёт кортеж из двух массивов numpy. Первый содержит дробную часть чисел исходного массива, второй целую часть исходного массива.

Простые действия над массивами в numpy

Ну, а теперь рассмотрим простые действия с массивами в библиотеке numpy.

В следующем примере и объяснять ничего не нужно, достаточно посмотреть на результаты

#!/usr/bin/python3
import numpy as np
a = np.full((3, 2),3,dtype=np.int64)
b = np.full((3, 2),2,dtype=np.int64)
c = a + b
print(c)
c = a - b
print(c)
c = a * b
print(c)
c = a / b
print(c)

Результат выполнения программы

[[5 5]
[5 5]
[5 5]]
[[1 1]
[1 1]
[1 1]]
[[6 6]
[6 6]
[6 6]]
[[1.5 1.5]
[1.5 1.5]
[1.5 1.5]]

Как, видите всё тут ясно. Следует только отметить метод full() позволяющий задавать массив нужно размерности и заполнения. Вообще функций, с помощью которых можно автоматизировать создание массивов в numpy несколько. Мы перечислим их в следующей статье.

А теперь массив и скаляры.

#!/usr/bin/python3
import numpy as np
a = np.full((3, 2),3,dtype=np.int64)
c = a * 2
print(c)
c =  2 / a
print(c)
c = a + 10
print(c)


Результат выполнения программы

[[6 6]
[6 6]
[6 6]]
[[0.66666667 0.66666667]
[0.66666667 0.66666667]
[0.66666667 0.66666667]]
[[13 13]
[13 13]
[13 13]]

Результаты тоже вполне понятны.

А теперь интересный пример, логическое действие между массивами.

#!/usr/bin/python3
import numpy as np
a = np.full((3, 2),3,dtype=np.int64)
b = np.array([[1, 2], [3, 4], [5, 6]])
c = a > b
print(c)

Результат выполнения

[[ True  True]
[False False]
[False False]]

Согласитесь, интересный результат.

Также можно поэлементно выполнять операции & - логическое 'И', | - логическое 'ИЛИ', ^ - логическое 'исключающее ИЛИ'.

Ещё о поиске элементов массива в numpy

Ну, а теперь вернусь к вопросу, который я поднял в прошлой статье. Вопрос о поиске в массиве. Поиск можно осуществлять обычным перебором (а их даже несколько), но есть и специальное средство, это функция numpy.where().

#!/usr/bin/python3
import numpy as np
a = np.array([[3, 2], [3, 4], [5, 6]])
x = np.where(a==3)
print(x)

Результат выполнения

(array([0, 1]), array([0, 0]))

Т.е. получили кортеж, состоящий из двух массивов с координатами - в первом массиве значения строк, в втором значения столбцов.

Условиями поиска, естественно могут быть также и '>', '<', '=>', '=<', '!='.

Программирование на языке Python. Библиотека numpy, продолжение команд над массивами
programmer's notes (python and more)2 мая 2024

Ну, пока всё!

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

Сдаётся мне, что сгодится нам эта библиотека
Сдаётся мне, что сгодится нам эта библиотека