Is 'a' a regular numpy array or something fancier?

-=- Olivier

2011/12/6 questions anon <questions.a...@gmail.com>

> thanks again my only problem though is that the out=a in the loop does not
> seem to replace my a= outside the loop so my final a is whatever I started
> with for a.
> Not sure what I am doing wrong whether it is something with the loop or
> with the command.
>
> On Wed, Dec 7, 2011 at 1:44 PM, <josef.p...@gmail.com> wrote:
>
>> On Tue, Dec 6, 2011 at 9:36 PM, Olivier Delalleau <sh...@keba.be> wrote:
>> > 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)
>>
>> I didn't think of the out argument which makes it more efficient, but
>> in my example I used Python's reduce which takes an iterable and not
>> one huge array.
>>
>> Josef
>>
>>
>> >
>> > -=- 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
>> >
>> _______________________________________________
>> 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

Reply via email to