NumPy logaddexp2()

The numpy.logaddexp2() function computes the logarithm of the sum of exponentiations of the inputs in base-2. It is particularly useful in probability calculations where probabilities are represented in log-space to prevent underflow issues.

Syntax

</>
Copy
numpy.logaddexp2(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True)

Parameters

ParameterTypeDescription
x1, x2array_likeInput values. If their shapes do not match, they must be broadcastable to a common shape.
outndarray, None, or tuple of ndarray and None, optionalOptional output array where the result is stored. If None, a new array is created.
wherearray_like, optionalBoolean mask specifying which elements to compute. Elements where where=False retain their original value.
castingstr, optionalDefines the casting behavior when computing the function.
orderstr, optionalMemory layout order of the output array.
dtypedata-type, optionalDefines the data type of the output array.
subokbool, optionalDetermines if subclasses of ndarray are preserved in the output.

Return Value

Returns an array containing the base-2 logarithm of 2**x1 + 2**x2. If both x1 and x2 are scalars, a scalar is returned.


Examples

1. Computing logaddexp2 for Two Scalar Values

Computing the base-2 logarithm of the sum of exponentiations for two scalar values.

</>
Copy
import numpy as np

# Define two scalar values
x1 = 3
x2 = 4

# Compute logaddexp2
result = np.logaddexp2(x1, x2)

# Print the result
print("logaddexp2(3, 4):", result)

Output:

logaddexp2(3, 4): 4.584962500721156

2. Applying logaddexp2 to Arrays

Computing the element-wise logaddexp2 for two arrays.

</>
Copy
import numpy as np

# Define two arrays
x1 = np.array([1, 2, 3])
x2 = np.array([3, 2, 1])

# Compute logaddexp2 element-wise
result = np.logaddexp2(x1, x2)

# Print the results
print("x1:", x1)
print("x2:", x2)
print("logaddexp2(x1, x2):", result)

Output:

x1: [1 2 3]
x2: [3 2 1]
logaddexp2(x1, x2): [3.32192809 3.         3.32192809]

3. Using the out Parameter

Storing the result of logaddexp2 in a pre-allocated output array.

</>
Copy
import numpy as np

# Define two arrays
x1 = np.array([0, 1, 2])
x2 = np.array([2, 1, 0])

# Create an output array with the same shape
output_array = np.ndarray(x1.shape)

# Compute logaddexp2 and store it in output_array
np.logaddexp2(x1, x2, out=output_array)

# Print the results
print("Stored result in output_array:", output_array)

Output:

Stored result in output_array: [2.32192809 2.         2.32192809]

4. Using the where Parameter

Applying a condition to compute logaddexp2 only for specific elements.

</>
Copy
import numpy as np

# Define two arrays
x1 = np.array([0, 2, 4, 6])
x2 = np.array([4, 2, 0, -2])

# Define a condition mask (only compute where mask is True)
mask = np.array([True, False, True, True])

# Compute logaddexp2 where mask is True
result = np.logaddexp2(x1, x2, where=mask)

# Print the results
print("Computed logaddexp2 with mask:", result)

Output:

Computed logaddexp2 with mask: [4.08746284 0.         4.08746284 6.00562455]

The function is computed only for elements where mask=True. Other elements retain their original values.