From: Tom D. <tom...@al...> - 2006-08-31 19:29:19
|
I would think one would want to throw an error when the data has inconsistent dimensions. This is what numpy does for other dtypes: In [10]: numpy.array(([1,2,3], [4,5,6])) Out[10]: array([[1, 2, 3], [4, 5, 6]]) In [11]: numpy.array(([1,3], [4,5,6])) --------------------------------------------------------------------------- exceptions.TypeError Traceback (most recent call last) TypeError: an integer is required On 8/31/06, Christopher Barker <Chr...@no...> wrote: > > Tom Denniston wrote: > > So my question is what is the _advantage_ of the new semantics? > > what if the list don't have the same length, and therefor can not be > made into an array, now you get a weird result: > > >>>N.array([N.array([1,'A',None],dtype=object),N.array > ([2,2,'Somestring',5],dtype=object)]).shape > () > > Now you get an Object scalar. > > but: > >>>N.array([N.array([1,'A',None],dtype=object),N.array > ([2,2,'Somestring',5],dtype=object)],dtype=object).shape > (2,) > > Now you get a length 2 array, just like before: far more consistent. > With the old semantics, if you test your code with arrays of different > lengths, you'll get one thing, but if they then happen to be the same > length in some production use, the whole thing breaks -- this is a Bad > Idea. > > Object arrays are just plain weird, there is nothing you can do that > will satisfy every need. I think it's best for the array constructor to > not try to guess at what the hierarchy of sequences you *meant* to use. > You can (and probably should) always be explicit with: > > >>> A = N.empty((2,), dtype=object) > >>> A > array([None, None], dtype=object) > >>> A[:] = [N.array([1,'A', None], > dtype=object),N.array([2,2,'Somestring',5],dtype=object)] > >>> A > array([[1 A None], [2 2 Somestring 5]], dtype=object) > > -Chris > > > > > > -- > Christopher Barker, Ph.D. > Oceanographer > > NOAA/OR&R/HAZMAT (206) 526-6959 voice > 7600 Sand Point Way NE (206) 526-6329 fax > Seattle, WA 98115 (206) 526-6317 main reception > > Chr...@no... > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Numpy-discussion mailing list > Num...@li... > https://lists.sourceforge.net/lists/listinfo/numpy-discussion > |