On Wed, May 2, 2012 at 11:26 PM, Francesc Alted <franc...@continuum.io> wrote:
> On 5/2/12 4:20 PM, Nathaniel Smith wrote:
>> On Wed, May 2, 2012 at 9:53 PM, Francesc Alted<franc...@continuum.io>  wrote:
>>> On 5/2/12 11:16 AM, Wolfgang Kerzendorf wrote:
>>>> Hi all,
>>>>
>>>> I'm currently writing a code that needs three dimensional data (for the 
>>>> physicists it's dimensions are atom, ion, level). The problem is that not 
>>>> all combinations do exist (a sparse array). Sparse matrices in scipy only 
>>>> deal with two dimensions. The operations that I need to do on those are 
>>>> running functions like exp(item/constant) on all of the items. I also want 
>>>> to sum them up in the last dimension. What's the best way to make a class 
>>>> that takes this kind of data and does the required operations fast. Maybe 
>>>> some phycisists have implemented these things already. Any thoughts?
>>> Curiously enough, I have recently been discussing with Travis O. about
>>> how to represent sparse matrices with complete generality.  One of the
>>> possibilities is to use what Travis call "synthetic dimensions".  The
>>> idea behind it is easy: use a table with as many columns as dimensions,
>>> and add another one for the actual values of the array.  For a 3-D
>>> sparse array, this looks like:
>>>
>>> dim0 | dim1 | dim2 | value
>>> ==========================
>>>     0 |   0  |   0  | val0
>>>     0 |  10  | 100  | val1
>>>    20 |   5  | 202  | val2
>> This coordinate format is also what's used by the MATLAB Tensor
>> Toolbox. They have a paper justifying this choice and describing some
>> tricks for how to work with them:
>>    http://epubs.siam.org/sisc/resource/1/sjoce3/v30/i1/p205_s1
>> (Spoiler: you use a lot of sort operations. Conveniently, timsort
>> appears to be perfectly adapted for their algorithmic requirements.)
>
> Uh, I do not have access to the article, but yes, sorting makes a lot of
> sense for these scenarios (this is why I was suggesting using indexes,
> which is sort of sorting too).

Doh, sorry. Sticking the title into google scholar gives me this:
  http://csmr.ca.sandia.gov/~tgkolda/pubs/bibtgkfiles/SIAM-67648.pdf

- N
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to