From: Tim H. <tim...@co...> - 2004-07-13 19:58:10
|
Mike Zingale wrote: >Hi, I am trying to efficiently compute a difference of two 2-d flux >arrays, as arises quite commonly in finite-difference/finite-volume >methods. Ex: > >a = arange(64) >a.shape = (8,8) > >I want to do create a new array, b, of shape such that > >b[i,j] = a[i,j] - a[i-1,j] > >for 1 <= i < 8 > 0 <= i < 8 > > That's supposed to be a j in the second eq., right? If I understand you right, what you want is: b = a[1:] - a[:-1] -tim >I can obviously do this through loops, but this is quite slow. In IDL, >which is often compared to numarray/python, this is simple to do with the >shift() function, but I cannot find an efficient way to do it with >numarray arrays. > >I tried defining a list > >i = range(8) >im1[1:9] = im1[1:9] - 1 > >and indexing with im1, but this does not work. > >Any suggestions? For large array, this simple differencing in python is >very expensive when using loops. > >Thanks, > >Mike > >------------------------------------------------------------------------------ >Michael Zingale >UCO/Lick Observatory >UCSC >Santa Cruz, CA 95064 > >phone: (831) 459-5246 >fax: (831) 459-5265 >e-mail: zi...@uc... >web: http://www.ucolick.org/~zingale > >``Don't worry head, the computer will do our thinking now'' -- Homer > > > >------------------------------------------------------- >This SF.Net email sponsored by Black Hat Briefings & Training. >Attend Black Hat Briefings & Training, Las Vegas July 24-29 - >digital self defense, top technical experts, no vendor pitches, >unmatched networking opportunities. Visit www.blackhat.com >_______________________________________________ >Numpy-discussion mailing list >Num...@li... >https://lists.sourceforge.net/lists/listinfo/numpy-discussion > > > |