nDimensional sparse histogram in python.
KraftDiner
bobrien18 at yahoo.com
Wed Feb 1 21:51:12 EST 2006
Hi, I wrote a C++ class that implements an n dimensional histogram in
C++, using stl maps and vectors. I want to code this up now in Python
and would like some input from this group.
The C++ class was VERY simple..
std::map<std::vector<unsigned short>, unsigned long> histo;
Say for example I want a 3D histogram then std::vector<unsigned short>
would contains
the x, y, and z points in space and the unsigned long is the number of
counts.
If I want to know the value at a specific point in space I pass in a
vector [3,2,1] and if
it is found in the map then the count is returned other wise zero is
returned.
If I want to increment a count then histo[vector]++ will either set the
count to 1 or increment
the count if it is found...
So as you can see this is a very simple way to implement a multi
dimensional sparse histogram.
I'm thinking that in python this must also be as simple as a
dictionary, where the key is the vector x,y,z and the value is the
count.
My python is ok, but not the best and I was hoping some one here might
want to help me out?
This doesn't work for example...
histo = {[0,0,0]:1, [0,0,1]:2}
Would indicate that there is one sample at 0,0,0 and two samples at
0,0,1
but python tells me TypeError: list objects are unhashable
So any suggestions would be welcome.
TIA.
More information about the Python-list
mailing list