On 21.01.2017 16:10, josef.p...@gmail.com 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 NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion