Am 28.1.2013 um 23:15 schrieb Lluís: > Hi, > > I have a somewhat convoluted N-dimensional array that contains information of > a > set of experiments. > > The last dimension has as many entries as iterations in the experiment (an > iterative application), and the penultimate dimension has as many entries as > times I have run that experiment; the rest of dimensions describe the features > of the experiment: > > data.shape == (... indefinite amount of dimensions ..., NUM_RUNS, > NUM_ITERATIONS) > > So, what I want is to get the data for the best run of each experiment: > > best.shape == (... indefinite amount of dimensions ..., NUM_ITERATIONS) > > by selecting, for each experiment, the run with the lowest total time (sum of > the time of all iterations for that experiment). > > > So far I've got the trivial part, but not the final indexing into "data": > > dsum = data.sum(axis = -1) > dmin = dsum.min(axis = -1) > best = data[???] > > > I'm sure there must be some numpythonic and generic way to get what I want, > but > fancy indexing is beating me here :)
Did you have a look at the argmin function? It delivers the indices of the minimum values along an axis. Untested guess: dmin_idx = argmin(dsum, axis = -1) best = data[..., dmin_idx, :] Gregor _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
