On Tue, Jun 1, 2010 at 1:07 PM, Mathew Yeates <mat.yea...@gmail.com> wrote: > Hi > Can anyone think of a clever (non-lopping) solution to the following? > A have a list of latitudes, a list of longitudes, and list of data values. > All lists are the same length. > I want to compute an average of data values for each lat/lon pair. e.g. if > lat[1001] lon[1001] = lat[2001] [lon [2001] then > data[1001] = (data[1001] + data[2001])/2 > Looping is going to take wayyyy to long.
Looping N and searching in N would be O(N^2). But would it be too long just to loop, so O(N)? If you need to find all averages you could try something like this: from collections import defaultdict def aggdict(x): "Convert [(1, 'a'), (2, 'b'), (1, 'A')] to {1: ['a', 'A'], 2: ['b']}." d = defaultdict(list) for k, v in x: d[k].append(v) return dict(d) _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion