numpy.power

numpy.power(x1, x2, *ufunc_args) = <ufunc 'power'>

Функция power() выполняет возведение элементов из массива x1 в степень элементов из массива x2.

Данная функция эквивалентной команде x1**x2 и является аналогом оператора **, который перегружен в NumPy таким образом, что бы возведение в степень выполнялось поэлементно в случае одинаковых форм входных массивов, а в случае разных форм, выполнялся механизм транслирования массивов.

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

Параметры:
x1, x2 - числа, массивы или подобные массивам объекты
Входные данные.
*ufunc_args - аргументы универсальной функции
Аргументы, позволяющие настроить и оптимизировать работу функции (подробнее см. универсальные функции).
Возвращает:
результат - массив NumPy или вещественное число
Массив чисел, которые являются результатом возведения в степень соответствующих элементов из x1 в степень из x2. Возвращает число, если x1 и x2 являются числами.

Замечание

Возведение целых чисел в отрицательную целую степень вызовет ошибку, которая вызвана тем, что выполняется только безопасное преобразованием типов:

>>> import numpy as np
>>> 
>>> np.power(2, -1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Integers to negative integer powers are not allowed.

Прямое указание типа данных результирующего массива позволяет исправить такое поведение:

>>> np.power(3, -1, dtype = np.float)
0.3333333333333333

Или выполнить предварительное преобразование типа данных:

>>> a = np.array([2, 3])
>>> b = np.array([-2, -3])
>>> 
>>> np.power(np.float64(a), b)
array([0.25      , 0.03703704])
Смотрите так же: add, multiply, divide, subtract, mod


Примеры

>>> import numpy as np
>>> 
>>> np.power(2, 10)
1024
>>> 
>>> np.power([1, 2, 3, 4], 2)
array([ 1,  4,  9, 16], dtype=int32)
>>> 
>>> np.power(2, [1, 2, 3, 4])
array([ 2,  4,  8, 16], dtype=int32)
>>> 
>>> 
>>> a = np.array([-2, 0, 2])
>>> 
>>> b = np.arange(1, 7, dtype = np.float64).reshape(2, 3)
>>> b
array([[1., 2., 3.],
       [4., 5., 6.]])
>>> 
>>> np.power(b, a)
array([[ 1.    ,  1.    ,  9.    ],
       [ 0.0625,  1.    , 36.    ]])