On Sat, Jun 6, 2009 at 17:34, Alan G Isaac<ais...@american.edu> wrote: > On 6/6/2009 6:02 PM Keith Goodman apparently wrote: >>> def fill_diag(arr, value): >> if arr.ndim != 2: >> raise ValueError, "Input must be 2-d." >> if arr.shape[0] != arr.shape[1]: >> raise ValueError, 'Input must be square.' >> arr.flat[::arr.shape[1]+1] = value > > > You might want to check for contiguity. > See diagrv in pyGAUSS.py: > http://code.google.com/p/econpy/source/browse/trunk/pytrix/pyGAUSS.py
Ah, that's the beauty of .flat; it takes care of that for you. .flat is not a view onto the memory directly. It is a not-quite-a-view onto what the memory *would* be if the array were contiguous and the memory directly reflected the layout as seen by Python. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion