Numpy float_power函数的使用教程

463 阅读4分钟

如果我们有两个数组(必须是相同大小)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) 

参数

  1. arr1 :这是第一个数组,其元素可作为基数。
  2. arr2 :这是第二个数组,其元素作为指数工作。
  3. out。 这是一个ndarray和一个可选的字段。 结果将被储存在一个地方。如果给定,输入广播的形状必须在。当一个新分配的数组被返回,除非收到或无。一个元组(只可能作为关键字参数)的长度必须与输出相等。
  4. 其中。 这个状态是通过数据传输的。在条件为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。 正如前面所说,这个函数返回了一个可用的结果。

参见

Numpy eye()

Numpy npv()

Numpy fv()

Numpy pv()

Numpy power()