Charles R Harris wrote: > OK. I do have a couple of questions. Let me insert the docs for array > and asarray : > > """array(object, dtype=None, copy=1,order=None, subok=0,ndmin=0) > > Return an array from object with the specified date-type. > > 1) Is it true that array doesn't always return a copy except by > default? asarray says it contrasts with array in this regard. Maybe > copy=0 should be deprecated. array is the main creation function. It is a loose wrapper around PyArray_fromAny. copy=0 means don't copy unless you have to.
> 2) Is asarray is basically array with copy=0? Yes. > > 3) Is asanyarray basically array with copy=0 and subok=1? Yes. > > 4) Is there some sort of precedence table for conversions? To me it > looks like the most deeply nested lists are converted to arrays first, > numeric if they contain all numeric types, object otherwise. I assume > the algorithm then ascends up through the hierarchy like traversing a > binary tree in postorder? I'm not sure I understand what you mean. The discover-depth and discover-dimensions algorithm figures out what the shape should be and then recursive PySequence_GetItem and PySequence_SetItem is used to copy the information over to the ndarray from the nested sequence. > > 5) All nesting must be to the same depth and the deepest nested items > must have the same length. Yes, there are routines discover_depth and discover_dimensions that are the actual algorithm used. These are adapted from Numeric. > > 6) How is the difference between lists and "lists" determined, i.e., > > In [3]: array([list([1,2,3]),list([1,2])], dtype = object) > Out[3]: array([[1, 2, 3], [1, 2]], dtype=object) > > In [8]: array([array([1,2,3]),array([1,2])], dtype = object) > Out[8]: array([[1 2 3], [1 2]], dtype=object) > > > In [9]: array([1,2,3],[1,2]], dtype = object) > ------------------------------------------------------------ > File "<ipython console>", line 1 > array([1,2,3],[1,2]], dtype = object) > ^ > SyntaxError: invalid syntax I think this is just due to a missing [ in In [9]. There is no semantic difference between list([1,2,3]) and [1,2,3] (NumPy will see those things as exactly the same). > > Is the difference that list(...) and array(...) are passed as > functions (lazy evaluation), but a list is just a list? There is nothing like "lazy evaluation" going on. array([1,2,3]) is evaluated returning an object and array([1,2]) is evaluated returning an object and then the two are put into another object array. Equivalent code a = array([1,2,3]) b = array([1,2]) c = array([a,b],dtype=object) Thanks for all your help with documentation. It is very-much appreciated. -Travis ------------------------------------------------------------------------- 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 Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion