From: Rick W. <rl...@st...> - 2002-05-02 18:58:20
|
Since nobody else has replied to this yet, I'll take a crack at it. On Thu, 2 May 2002, Pete Shinners wrote: > help, i need help formatting some data in Numeric arrays. i can't quite > seem to make it happen. here they come... (beware) > > 1: i want to create a simple 3d array, so that accessing it with any two > indices gives me the same result as those two indices.. > myarray[1,2] == 1,2 > myarray[4,4] == 4,4 > i would assume this just involves mixing two arange()'s together, but i > can't seem to get them meshed together correctly. actually, this is > something i think i'd want quite a bit, it'd be real real nice if arange > could take multiple axes. :] i thought this might be a good > "fromfunction" situation, but i couldn't get that to go either. This works. I don't know whether it is optimal, though I think it isn't bad. Note that the returned values are 2-element Numeric arrays, not tuples. Seems to me that arrays are a lot more usable as return values. def twod(n,m): a = zeros((n,m,2)) b = arange(n*m) a[:,:,0] = transpose(reshape(b % n, (m,n))) a[:,:,1] = reshape(b % m, (n,m)) return a > 2: i have a 3d array with image data (RGBs). i want to flatten only the > first two dimensions so i have an array of RGB values. this one's got me > completely stumped. i'm hoping there's just some function i'm not seeing > in the docs, but i'd be just as happy with a bit of Numeric magic. It's not clear to me what you mean here. If you have an array with shape (n,m,3) and want to get (n*m,3), just use reshape(a,(n*m,3)). Maybe you mean something more complicated than that? Rick ------------------------------------------------------------------ Richard L. White rl...@st... http://sundog.stsci.edu/rick/ Space Telescope Science Institute Baltimore, MD |