On Tue, Jun 8, 2010 at 11:24 AM, Andreas Hilboll <li...@hilboll.de> wrote:
> Hi there, > > I have a problem, which I'm sure can somehow be solved using np.choose() > - but I cannot figure out how :( > > I have an array idx, which holds int values and has a 2d shape. All > values inside idx are 0 <= idx < n. And I have a second array times, > which is 1d, with times.shape = (n,). > > Out of these two arrays I now want to create a 2d array having the same > shape as idx, and holding the values contained in times, as indexed by > idx. > > A simple np.choose(idx,times) does not work (error "Need between 2 and > (32) array objects (inclusive)."). > > Example: > > idx = [[4,2],[3,1]] > times = [100,101,102,103,104] > > From these two I want to create an array > > result = [[104,102],[103,101]] > > How can this be done? > > Thanks a lot for your insight! > > Andreas > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > Here is a non numpy.choose solution: newtimes = [times[idx[x][y]] for x in range(2) for y in range(2)] np.array(newtimes).reshape(2,2) array([[104, 102], [103, 101]]) -- Gökhan
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion