Модуль Numeric определяет набор функций для применения к элементам массива. Функции применимы не только к массивам, но и к последовательностям (к сожалению, итераторы пока не поддерживаются). В результате получаются массивы.
| add(x, y), subtract(x, y) | Сложение и вычитание |
| multiply(x, y), divide(x, y) | Умножение и деление |
| remainder(x, y), fmod(x, y) | Получение остатка от деления (для целых чисел и чисел с плавающей запятой) |
| power(x, y) | Возведение в степень |
| sqrt(x) | Извлечение корня квадратного |
| negative(x), absolute(x), fabs(x) | Смена знака и абсолютное значение |
| ceil(x), floor(x) | Наименьшее (наибольшее) целое, большее (меньшее) или равное аргументу |
| hypot(x, y) | Длина гипотенузы (даны длины двух катетов) |
| sin(x), cos(x), tan(x) | Тригонометрические функции |
| arcsin(x), arccos(x), arctan(x) | Обратные тригонометрические функции |
| arctan2(x, y) | Арктангенс от частного аргумента |
| sinh(x), cosh(x), tanh(x) | Гиперболические функции |
| arcsinh(x), arccosh(x), arctanh(x) | Обратные гиперболические функции |
| exp(x) | Экспонента (ex) |
| log(x), log10(x) | Натуральный и десятичный логарифмы |
| maximum(x, y), minimum(x, y) | Максимум и минимум |
| conjugate(x) | Сопряжение (для комплексных чисел) |
| equal(x, y), not_equal(x, y) | Равно, не равно |
| greater(x, y), greater_equal(x, y) | Больше, больше или равно |
| less(x, y), less_equal(x, y) | Меньше, меньше или равно |
| logical_and(x, y), logical_or(x, y) | Логические И, ИЛИ |
| logical_xor(x, y) | Логическое исключающее ИЛИ |
| logical_not(x) | Логические НЕ |
| bitwise_and(x, y), bitwise_or(x, y) | Побитовые И, ИЛИ |
| bitwise_xor(x, y) | Побитовое исключающее ИЛИ |
| invert(x) | Побитовая инверсия |
| left_shift(x, n), right_shift(x, n) | Побитовые сдвиги влево и вправо на n битов |
Перечисленные функции являются объектами типа ufunc и применяются к массивам поэлементно. Эти функции имеют специальные методы:
| accumulate() | Аккумулирование результата. |
| outer() | Внешнее "произведение". |
| reduce() | Сокращение. |
| reduceat() | Сокращение в заданных точках. |
Пример с функцией add() позволяет понять смысл универсальной функции и ее методов:
Предупреждение: Не следует использовать в качестве приемника результата массив, который фигурирует в предыдущих аргументах функции, так как при этом результат может быть испорчен. Следующий пример показывает именно такой вариант: >>> import Numeric >>> m = Numeric.array([0, 0, 0, 1, 0, 0, 0, 0]) >>> add(m[:-1], m[1:], m[1:]) array([0, 0, 1, 1, 1, 1, 1]) В таких неоднозначных случаях необходимо использовать промежуточный массив. |