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])
Примеры
>>> 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. ]])