# offset in fill diagonal

3 messages
Open this post in threaded view
|
Report Content as Inappropriate

## offset in fill diagonal

 Is there a simple way to fill in diagonal elements in an array for other than main diagonal?As far as I can see, the diagxxx functions that have offset can only read and not inplace modify, and the functions for modifying don't have offset and only allow changing the main diagonal.Usecase: creating banded matrices (2-D arrays) similar to toeplitz.Josef _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.scipy.org/mailman/listinfo/numpy-discussion
Open this post in threaded view
|
Report Content as Inappropriate

## Re: offset in fill diagonal

 On 21.01.2017 16:10, [hidden email] wrote: > Is there a simple way to fill in diagonal elements in an array for other > than main diagonal? > > As far as I can see, the diagxxx functions that have offset can only > read and not inplace modify, and the functions for modifying don't have > offset and only allow changing the main diagonal. > > Usecase: creating banded matrices (2-D arrays) similar to toeplitz. > you can construct index arrays or boolean masks to index using the np.tri* functions. e.g. a = np.arange(5*5).reshape(5,5) band = np.tri(5, 5, 1, dtype=np.bool) & ~np.tri(5, 5, -2, dtype=np.bool) a[band] = -1 _______________________________________________ NumPy-Discussion mailing list [hidden email] https://mail.scipy.org/mailman/listinfo/numpy-discussion