On 5/2/12 4:20 PM, Nathaniel Smith wrote:
> On Wed, May 2, 2012 at 9:53 PM, Francesc Alted<[email protected]>  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).

>
> I'm not sure why one would make up a new term like "synthetic
> dimensions" though, it's just standard coordinate format...

Yeah, this seems a bit weird.  Perhaps Travis was referring to other 
things and I mixed concepts.  Anyways.

-- 
Francesc Alted

_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to