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])
CodePudding user response:
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
