Python numpy.logaddexp2()
numpy.logaddexp2()函数用于计算输入的指数之和的对数,以2为基准。
在机器学习中,当计算出的事件概率可能小到超出正常浮点数的范围时,这个函数很有用。在这种情况下,可以使用计算概率的2进制对数来代替。这个函数允许添加以这种方式存储的概率。它计算log2(2×1 + 2×2) .
语法 : numpy.logaddexp2(arr1, arr2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, ufunc ‘logaddexp’)
参数 :
arr1 :[array_like] 输入阵列。
arr2 :[array_like] 输入阵列。
out :[ndarray, optional] 一个储存结果的位置。
-> 如果提供,它必须有一个输入广播到的形状。
-> 如果没有提供或没有,将返回一个新分配的数组。
where :[array_like, optional] 真值意味着计算该位置的通用函数(ufunc),假值意味着不考虑输出中的值。
**kwargs :允许你向一个函数传递长度可变的关键字参数。当我们想在一个函数中处理命名的参数时,它就被使用。
返回 : [ndarray或标量] 它返回2**x1+2**x2的Base-2对数。如果arr1和arr2都是标量,这就是一个标量。
代码 #1 :
# Python3 code demonstrate logaddexp2() function
# importing numpy
import numpy as geek
in_num1 = 2
in_num2 = 3
print ("Input number1 : ", in_num1)
print ("Input number2 : ", in_num2)
out_num = geek.logaddexp2(in_num1, in_num2)
print ("Output number : ", out_num)
输出 :
Input number1 : 2
Input number2 : 3
Output number : 3.58496250072
代码 #2 :
# Python3 code demonstrate logaddexp2() function
# importing numpy
import numpy as geek
in_arr1 = [2, 3, 8]
in_arr2 = [1, 2, 3]
print ("Input array1 : ", in_arr1)
print ("Input array2 : ", in_arr2)
out_arr = geek.logaddexp2(in_arr1, in_arr2)
print ("Output array : ", out_arr)
输出 :
Input array1 : [2, 3, 8]
Input array2 : [1, 2, 3]
Output array : [ 2.5849625 3.5849625 8.04439412]