I think you want np.maximum(a, b, out=a) - Nathaniel On Dec 6, 2011 9:04 PM, "questions anon" <questions.a...@gmail.com> wrote:
> thanks for responding Josef but that is not really what I am looking for, > I have a multidimensional array and if the next array has any values > greater than what is in my first array I want to replace them. The data are > contained in netcdf files. > I can achieve what I want if I combine all of my arrays using numpy > concatenate and then using the command numpy.max(myarray, axis=0) but > because I have so many arrays I end up with a memory error so I need to > find a way to get the maximum while looping. > > > > On Wed, Dec 7, 2011 at 12:36 PM, <josef.p...@gmail.com> wrote: > >> On Tue, Dec 6, 2011 at 7:55 PM, Olivier Delalleau <sh...@keba.be> wrote: >> > It may not be the most efficient way to do this, but you can do: >> > mask = b > a >> > a[mask] = b[mask] >> > >> > -=- Olivier >> > >> > 2011/12/6 questions anon <questions.a...@gmail.com> >> >> >> >> I would like to produce an array with the maximum values out of many >> >> (10000s) of arrays. >> >> I need to loop through many multidimentional arrays and if a value is >> >> larger (in the same place as the previous array) then I would like that >> >> value to replace it. >> >> >> >> e.g. >> >> a=[1,1,2,2 >> >> 11,2,2 >> >> 1,1,2,2] >> >> b=[1,1,3,2 >> >> 2,1,0,0 >> >> 1,1,2,0] >> >> >> >> where b>a replace with value in b, so the new a should be : >> >> >> >> a=[1,1,3,2] >> >> 2,1,2,2 >> >> 1,1,2,2] >> >> >> >> and then keep looping through many arrays and replace whenever value is >> >> larger. >> >> >> >> I have tried numpy.putmask but that results in >> >> TypeError: putmask() argument 1 must be numpy.ndarray, not list >> >> Any other ideas? Thanks >> >> if I understand correctly it's a minimum.reduce >> >> numpy >> >> >>> a = np.concatenate((np.arange(5)[::-1], >> np.arange(5)))*np.ones((4,3,1)) >> >>> np.minimum.reduce(a, axis=2) >> array([[ 0., 0., 0.], >> [ 0., 0., 0.], >> [ 0., 0., 0.], >> [ 0., 0., 0.]]) >> >>> a.T.shape >> (10, 3, 4) >> >> python with iterable >> >> >>> reduce(np.maximum, a.T) >> array([[ 4., 4., 4., 4.], >> [ 4., 4., 4., 4.], >> [ 4., 4., 4., 4.]]) >> >>> reduce(np.minimum, a.T) >> array([[ 0., 0., 0., 0.], >> [ 0., 0., 0., 0.], >> [ 0., 0., 0., 0.]]) >> >> Josef >> >> >> >> >> _______________________________________________ >> >> NumPy-Discussion mailing list >> >> NumPy-Discussion@scipy.org >> >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> >> >> > >> > >> > _______________________________________________ >> > NumPy-Discussion mailing list >> > NumPy-Discussion@scipy.org >> > http://mail.scipy.org/mailman/listinfo/numpy-discussion >> > >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion@scipy.org >> http://mail.scipy.org/mailman/listinfo/numpy-discussion >> > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion