The "out=a" keyword will ensure your first array will keep being updated. So you can do something like:
a = my_list_of_arrays[0] for b in my_list_of_arrays[1:]: numpy.maximum(a, b, out=a) -=- Olivier 2011/12/6 questions anon <questions.a...@gmail.com> > thanks for all of your help, that does look appropriate but I am not sure > how to loop it over thousands of files. > I need to keep the first array to compare with but replace any greater > values as I loop through each array comparing back to the same array. does > that make sense? > > > On Wed, Dec 7, 2011 at 1:12 PM, Olivier Delalleau <sh...@keba.be> wrote: > >> Thanks, I didn't know you could specify the out array :) >> >> (to the OP: my initial suggestion, although probably not very efficient, >> seems to work with 2D arrays too, so I have no idea why it didn't work for >> you -- but Nathaniel's one seems to be the ideal one anyway). >> >> -=- Olivier >> >> >> 2011/12/6 Nathaniel Smith <n...@pobox.com> >> >>> 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 >>> >>> >> >> _______________________________________________ >> 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