On 01/31/2012 04:35 PM, Benjamin Root wrote: > > > On Tue, Jan 31, 2012 at 9:18 AM, Robert Kern <robert.k...@gmail.com > <mailto:robert.k...@gmail.com>> wrote: > > On Tue, Jan 31, 2012 at 15:13, Benjamin Root <ben.r...@ou.edu > <mailto:ben.r...@ou.edu>> wrote: > > > Is np.all() using np.array() or np.asanyarray()? If the latter, > I would > > expect it to return a numpy array from a generator. > > Why would you expect that? > > [~/scratch] > |37> np.asanyarray(i>5 for i in range(10)) > array(<generator object <genexpr> at 0xdc24a08>, dtype=object) > > -- > Robert Kern > > > What possible use-case could there be for a numpy array of generators? > Furthermore, from the documentation: > > numpy.asanyarray = asanyarray(a, dtype=None, order=None, maskna=None, > ownmaskna=False) > Convert the input to an ndarray, but pass ndarray subclasses through. > > Parameters > ---------- > a : array_like > *Input data, in any form that can be converted to an array*. This > includes scalars, lists, lists of tuples, tuples, tuples of > tuples, > tuples of lists, and ndarrays. > > Emphasis mine. A generator is an input that could be converted into an > array. (Setting aside the issue of non-terminating generators such as > those from cycle()).
Splitting semantic hairs doesn't help here -- it *does* return an array, it just happens to be a completely useless 0-dimensional one. The question is, is the current confusing and less than useful? (I vot for "yes"). list and tuple are special-cased, why not generators (at least to raise an exception) Going OT, look at this gem: ???? In [3]: a Out[3]: array([1, 2, 3], dtype=object) In [4]: a.shape Out[4]: () ??? In [9]: b Out[9]: array([1, 2, 3], dtype=object) In [10]: b.shape Out[10]: (3,) Figuring out the "???" is left as an exercise to the reader :-) Dag Sverre _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion