Python numpy.logaddexp()
numpy.logaddexp()函数用于计算输入的指数之和的对数。
这个函数在统计学中很有用,因为计算出的事件概率可能非常小,以至于超出了正常浮点数的范围。在这种情况下,计算出的概率的对数被存储。该函数允许将以这种方式存储的概率相加。它计算 log(exp(arr1) + exp(arr2)) .
语法 : numpy.logaddexp(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 or scalar] 它返回exp(arr1)+exp(arr2)的对数。如果arr1和arr2都是标量,这就是一个标量。
代码 #1 :
# Python3 code demonstrate logaddexp() function
# importing numpy
import numpy as np
in_num1 = 2
in_num2 = 3
print ("Input number1 : ", in_num1)
print ("Input number2 : ", in_num2)
out_num = np.logaddexp(in_num1, in_num2)
print ("Output number : ", out_num)
输出 :
Input number1 : 2
Input number2 : 3
Output number : 3.31326168752
代码 #2 :
# Python3 code demonstrate logaddexp() function
# importing numpy
import numpy as np
in_arr1 = [2, 3, 8]
in_arr2 = [1, 2, 3]
print ("Input array1 : ", in_arr1)
print ("Input array2 : ", in_arr2)
out_arr = np.logaddexp(in_arr1, in_arr2)
print ("Output array : ", out_arr)
输出 :
Input array1 : [2, 3, 8]
Input array2 : [1, 2, 3]
Output array : [ 2.31326169 3.31326169 8.00671535]