如果我们有两个数组(必须是相同大小)arr1和arr2,numpy.power() 函数将计算arr1i^arr2i ,每个i=0到大小_of_arrary-1。 但是这个函数与numpy.power()略有不同。在这个函数中,无论输入的数据是整数还是浮点数,我们得到的结果都是浮点数数据类型,其中最小精度为float64,这样的结果总是不精确的。
另外,在这个函数中,如果我们在arr2中有负数,它不会通过ValueError工作;相反,它返回一个可用的结果,对于正数来说,很少溢出。
Numpy float_power()
np.power()是一个Numpy 库函数,用于获得一个包含第一个数组元素的数组,并将其提升到第二个数组的幂元素。 float_power()函数与那些整数的power函数不同;float16和float32被提升为float64的最小精度的浮点数,这样的结果总是不精确的。
float_power()函数对于负数的幂值会返回一个很好的结果,对于正数的幂值很少会溢出。
语法
numpy.float_power(arr1, arr2, out = None, where = True, casting = ‘same_kind’, order = ‘K’, dtype = None)
参数
- arr1 :这是第一个数组,其元素可作为基数。
- arr2 :这是第二个数组,其元素作为指数工作。
- out。 这是一个ndarray和一个可选的字段。 结果将被储存在一个地方。如果给定,输入广播的形状必须在。当一个新分配的数组被返回,除非收到或无。一个元组(只可能作为关键字参数)的长度必须与输出相等。
- 其中。 这个状态是通过数据传输的。在条件为True的地方,out数组将被设置为ufunc的结果。out数组将在其他地方保持其原有的兴趣。 注意 ,如果默认的out = None产生一个未初始化的out列表,其中条件为False的位置将保持未初始化。
返回值
float_power()函数返回一个数组,其中第一个数组的元素上升到第二个数组的幂元素。结果将是浮动的数据类型。
显示float_power()工作原理的程序
请看下面的代码:
#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))
输出
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。
所以,根据公式,我们得到了我们想要的输出,但是是浮动数据类型。
在第二种情况下,我们首先声明了两个相同形状的数组,正如你所看到的,arr1的元素是浮点数据类型。 然后我们调用numpy.float_power() 来计算arr1i^arr2i。
所以,根据公式,我们得到了我们想要的输出,但是是浮动数据类型。
显示arr2元素为负数时的程序
#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))
输出
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。 正如前面所说,这个函数返回了一个可用的结果。