On 02/13/2015 11:51 AM, Francesc Alted wrote:
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)