2015-02-13 12:51 GMT+01:00 Julian Taylor <[email protected]>:
> On 02/13/2015 11:51 AM, Francesc Alted wrote: > > Hi, > > > > I would like to vectorize the next computation: > > > > nx, ny, nz = 720, 180, 3 > > outheight = np.arange(nz) * 3 > > oro = np.arange(nx * ny).reshape((nx, ny)) > > > > def compute1(outheight, oro): > > result = np.zeros((nx, ny, nz)) > > for ix in range(nx): > > for iz in range(nz): > > result[ix, :, iz] = outheight[iz] + oro[ix, :] > > return result > > > > I think this should be possible by using an advanced use of broadcasting > > in numpy. Anyone willing to post a solution? > > > result = outheight + oro.reshape(nx, ny, 1) > > And 4x faster for my case. Oh my, I am afraid that my mind will never scratch all the amazing possibilities that broadcasting is offering :) Thank you very much for such an elegant solution! Francesc
_______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
