I would like to replace inf with 0 in the matrix, P. The desired output is attached.
import numpy as np
P = np.array([-1.54511316e+12, -inf, -1.54511316e+12, -inf,
-inf, -inf, -inf])
The desired output is
array([-1.54511316e+12, 0, -1.54511316e+12, 0,
0, 0, 0])
>Solution :
You can combine numpy.where and numpy.isfinite:
P2 = np.where(np.isfinite(P), P, 0)
output:
array([-1.54511316e+12, 0.00000000e+00, -1.54511316e+12, 0.00000000e+00,
0.00000000e+00, 0.00000000e+00, 0.00000000e+00])
Or, for in place modification:
P[~np.isfinite(P)] = 0