Python中的 numpy.logaddexp2()
numpy.logaddexp2()函数用于计算以 2 为底的输入的幂和的对数。
当计算的事件概率可能小到超出正常浮点数的范围时,此函数在机器学习中很有用。在这种情况下,可以使用计算概率的以 2 为底的对数。此函数允许添加以这种方式存储的概率。它计算log2(2**x1 + 2**x2)
。
Syntax : numpy.logaddexp2(arr1, arr2, /, out=None, *, where=True, casting=’same_kind’, order=’K’, dtype=None, ufunc ‘logaddexp’)
Parameters :
arr1 : [array_like] Input array.
arr2 : [array_like] Input array.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.
where : [array_like, optional] True value means to calculate the universal functions(ufunc) at that position, False value means to leave the value in the output alone.
**kwargs : allows you to pass keyword variable length of argument to a function. It is used when we want to handle named argument in a function.
Return : [ndarray or scalar] It returns Base-2 logarithm of 2**x1 + 2**x2. This is a scalar if both arr1 and arr2 are scalars.
代码#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]