Если у нас есть два массива (должны быть одинакового размера) arr1 и arr2, функция numpy.power() будет вычислять arr1i^arr2i для каждого i=0 до size_of_arrary-1. Но она немного отличается от функции numpy.float_power() в Python.
Что такое функция Numpy float_power()?
np.power() — это библиотечная функция Numpy, используемая для получения одного массива, содержащего элементы первого массива, возведенного в степень элемента второго массива. Функция float_power() отличается от функции np.power() числами; float16 и float32 преобразуются в числа с плавающей запятой с минимальной точностью float64, так что результат всегда будет неточным.
Кроме того, в этой функции, если у нас есть отрицательные числа в arr2, она не будет работать через ValueError; вместо этого он возвращает полезный результат, а при положительной мощности редко переполняется.
Синтаксис
|
1 |
numpy.float_power(arr1, arr2, out = None, where = True, casting = ‘same_kind’, order = ‘K’, dtype = None) |
Параметры
- arr1: это первый массив, элементы которого служат базой.
- arr2: это второй массив, элементы которого работают как экспонента.
- out: это ndarray и необязательное поле. Место, в котором будет сохранен результат. Если указан, то в форме должны быть широковещательные входные данные. Возвращается только что выделенный массив, если он не получен или None. Кортеж (возможен только как аргумент ключевого слова) должен иметь длину, равную выходным данным.
- where: передается через данные. Массив out будет установлен на результат ufunc в местах, где условие истинно. Массив out будет сохранять свой первоначальный интерес в другом месте. Обратите внимание, что если значение по умолчанию out = None создает неинициализированный список вывода, позиции в нем, где условие имеет значение False, останутся неинициализированными.
Возвращаемое значение
Функция float_power() возвращает массив, в котором элементы первого массива возведены в степень элемента второго массива. Результаты будут в типе данных float.
Программа для демонстрации работы float_power()
См. следующий код.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#Importing numpy import numpy as np #Declaring arr1 and arr2 whose elements are integer arr1 = [2, 2, 1, 3, 5] arr2 = [4, 0, 5, 2, 3] #Now we will check working of power() print("Elements of arr1 raised to the power elements of arr2 are: ") print(np.float_power(arr1, arr2)) #Declaring arr1 and arr2 whose elements are float arr1 = [2.5, 2.1, 1.4, 3, 5] arr2 = [4, 0, 5, 2, 3] #Now we will check working of power() print("Elements of arr1 raised to the power elements of arr2 are: ") print(np.float_power(arr1, arr2)) |
Выход:
|
1 2 3 4 |
Elements of arr1 raised to the power elements of arr2 are: [ 16. 1. 1. 9. 125.] Elements of arr1 raised to the power elements of arr2 are: [ 39.0625 1. 5.37824 9. 125. ] |
Объяснение.
В первом случае мы сначала объявили два массива одинаковой формы, и, как видите, все они являются целыми числами. Затем мы вызвали numpy.float_power() для вычисления arr1i^arr2i. Итак, по формуле мы получили желаемый результат, но с типом данных float.
Во втором случае мы сначала объявили два массива одинаковой формы, а элементы массива arr1, как видите, являются типами данных с плавающей запятой. Затем мы вызвали numpy.float_power() для вычисления arr1i^arr2i.
Программа для отображения отрицательных значений элементов arr2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#Program when elements of arr2 are negative #Importing numpy import numpy as np #Declaring arr1 and arr2 whose elements are integer arr1 = [2, 2, 1, 3, 5] arr2 = [-4, 0, 5, -2, 3] #Now we will check working of power() print("Elements of arr1 raised to the power elements of arr2 are: ") print(np.float_power(arr1, arr2)) #Declaring arr1 and arr2 whose elements are float arr1 = [2.5, 2.1, 1.4, 3, 5] arr2 = [-4, 0, -5, 2, 3] #Now we will check working of power() print("Elements of arr1 raised to the power elements of arr2 are: ") print(np.float_power(arr1, arr2)) |
Вывод:
|
1 2 3 4 5 6 |
Elements of arr1 raised to the power elements of arr2 are: [6.25000000e-02 1.00000000e+00 1.00000000e+00 1.11111111e-01 1.25000000e+02] Elements of arr1 raised to the power elements of arr2 are: [2.56000000e-02 1.00000000e+00 1.85934432e-01 9.00000000e+00 1.25000000e+02] |
Объяснение.
В первом случае мы сначала объявили два массива одинаковой формы, и все они целые, но во втором массиве(arr2) некоторые элементы отрицательные. Затем мы вызвали numpy.float_power() для вычисления arr1i^arr2i. Как было сказано ранее, эта функция вернула положительный результат.
Во втором случае мы сначала объявили два массива одинаковой формы, и элементы массива arr1 являются типами данных с плавающей запятой, как вы можете видеть, но во втором массиве(arr2) некоторые элементы отрицательные. Затем мы вызвали float_power() для вычисления arr1i^arr2i. Как было сказано ранее, эта функция вернула положительный результат.
