I have a problem related to a detector that reads out the amount of photons that get fed into channels and the times they enter the detector, Lets say its channels 0 to 6 for simplicity sake. Array A will hold the channels, basically the index list, and while I am fine with counting the photons I am having troubles storing the times in a sensible container without looping (The data file is huge). So think of the array A as the index list and B as the times.
A=np.array([3,0,4,2,4,1,6])
#so this just says channel 3 got one photon, channel 0 got one,
#channel 4 got two, 2 got one, 1 got one, channel 5 never got any so
#it doesn't show up, and 6 got one.
B=np.array([1.2,1.6,3.,.7,.1,.05,9.])
#so here B are the times and they say (by referencing A) that channel
#1 got a photon at .05s, channel 0 got its photon at 1.6s, channel 4
#got a photon at 3s and another at .1s etc.
#I would like to somehow store these times in a coo sparse array or
# perhaps just a regular array that would look like:
C=np.array([[1.6,0],[.05,0],[.7,0],[1.2,0],[.1,3.0],[0,0],[.9,0]])
#the zeros could be nans of course. It would be helpful if each row
# was ordered from earliest times to latest. This final array is
#of course ordered properly from 0 to 6 in terms of channels down
#the first axis (not in the random order that the index list was)
Not a difficult problem if you don't care about speed but unfortunately everything I do lately need to be fast. Thanks guys