[Tutor] Problems creating very large arrays (over 10 million indices)

Reggie Dugard reggie@merfinllc.com
Tue Jul 1 15:23:01 2003


Sorry, I was a little too fast on the send button on that last message. 
The first example should read:

a = Numeric.fromstring(fp.read(), Numeric.Int16)
a = Numeric.reshape(a, (xsize, ysize, zsize))


On Tue, 2003-07-01 at 12:15, Reggie Dugard wrote:
> Edmund,
> 
> Assuming that fp is a file object opened for reading your file and that
> you've already read past the header, maybe one of these will work for
> you:
> 
> a = Numeric.fromstring(fp.read(), Numeric.Int16)
> Numeric.reshape(a, (xsize, ysize, zsize))
> 
> OR
> 
> a = numarray.fromfile(fp, numarray.Int16, (xsize, ysize, zsize))
> 
> I don't have much experience reading in data from outside sources, so I
> can't say that I've tested these, but I hope they steer you in the right
> direction.
> 
> 
> On Tue, 2003-07-01 at 11:20, DORSEY_EDMUND_K@LILLY.COM wrote:
> > I tried creating a Numeric array but I couldn't get the binary data into 
> > it. The array module was so great cause I could just use readfile to read 
> > in the entire file at once.
> > 
> > I tried this ...
> > 
> > a = Numeric.ones((xsize, ysize, zsize), Numeric.Int16) #create 3d numeric 
> > array of type short filled with ones (placeholders)
> > a[0][0][0] = file.read(2) #read in two bytes and stick it in the array
> > 
> > Of course it says the that the array 'a' needs an int as input.  Plus if I 
> > do this method I need to use 3 nested for loops and it is significantly 
> > slower than using a normal 1d array.  Is this how I would have to do it 
> > with the Numeric module?  Thanks for all the input you've given. 
> > 
> > ~Edmund
> > 
> > 
> > 
> > 
> > 
> > Edmund,
> > 
> > Given the size of your arrays and that they are 3 dimensional, you may 
> > want
> > to take a look at the Numeric package or the relatively new numarray
> > package.  They can handle multi-dimensional data in a very efficient 
> > manner.
> > They both can be found on sourceforge at 
> > 
> > http://sourceforge.net/projects/numpy/
> > 
-- 
Reggie