large arrays in python (scientific)

Dennis Roark denro at NSPAMearthlink.net
Wed Jan 9 18:54:48 CET 2002


>> > I have a data set that contains values for positions in 3D space.
>> > There are about 2 million data points
>> > (128x128x128).
>> >
>> > I'm trying to fit a function to the data. I want to use the
>> > LeastSquaresFit procedure in ScientificPython,
>>
>> I know nothing about Python, but you sure it's the best instrument
>> for this sort of stuff ? Sounds more like something for R to me.
>> ( http://www.cran.org ).
>> Anyway you have a huge data set .... going to need a lot of memory.
>>
>> --
>> Tae Kyon
>> Non c'è nulla di più animale
>> della coscienza pulita,
>> sul terzo pianeta del sistema solare
> 
 

For very large matrices, where most of the elements are 0, a different 
data structure than a multi-dimensional array can be much more efficient: 
look into Sparse Matrices.  They will store only those elemenents that are 
non-zero.  If you need to multiply two sparse matrices, you can take the 
transpose of one and then perform the multiplication scanning down the 
rows of each matrix.  (In a sparse matrix, it is difficult to travel down 
a particular column, but the transpose turns a column traversal into an 
easier row traversal.)  The sparse matrix saves the huge amount of memory 
that a regular matrix would use, and speeds matrix manipulation because of 
that.

-- 
Dennis Roark

denro at earthlink.net
Starting Points:
www.home.earthlink.net/~denro



More information about the Python-list mailing list