[email protected] wrote: > On Mon, Jan 18, 2010 at 2:18 PM, Warren Weckesser > <[email protected]> wrote: > >> Ernest Adrogué wrote: >> >>> Hi, >>> >>> This is hard to explain. In this code: >>> >>> reduce(np.logical_or, [m1 & m2, m1 & m3, m2 & m3]) >>> >>> where m1, m2 and m3 are boolean arrays, I'm trying to figure >>> out an expression that works with an arbitrary number of >>> arrays, not just 3. Any idea?? >>> >>> >>> >> If I understand the problem correctly, you want the result to be True >> whenever any pair of the corresponding elements of the arrays are True. >> >> This could work: >> >> reduce(np.add, [m.astype(int) for m in mlist]) > 1 >> >> where mlist is a list of the boolean array (e.g. mlist = [m1, m2, m3] in >> your example). >> > > much nicer than what I came up with. Does iterator instead of > intermediate list work (same for my list comprehension)? > > reduce(np.add, (m.astype(int) for m in mlist)) > 1 > >
Yes, that works and is preferable, especially if the arrays are large or the list is long. Warren > Josef > > > _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
