Home > OS >  Replace all off diagonal elements in numpy array
Replace all off diagonal elements in numpy array

Time:12-07

I have below numpy array

import numpy as np
np.identity(13)

Now I like to replace all off-diagonal elements with some other number, say 0.45.

Is there any direct method available to perform this?

CodePudding user response:

You can use numpy.where

np.where(np.identity(13)==0, 0.45, 1)

CodePudding user response:

What about the following?

import numpy as np
n = 13
val_offdiag = 0.45
val_diag = 1
a = np.full((n ,n), val_offdiag) - np.identity(n) * (val_offdiag - val_diag)
  • Related