Thanks Derek for quick clarification. Just one more question from the details you have provided which from my understanding strongly seems to be Design [DEREK] You cannot create a regular 2-dimensional integer array from one row of length 3 > > and a second one of length 0. Thus np.array chooses the next most basic type > of > array it can fit your input data in
Which is the case, only if an second one of length 0 is given. What about the case 1 : >>> x12 = np.array([[1,2,3]]) >>> x12 array([[1, 2, 3]]) >>> print(x12) [[1 2 3]] >>> x12.ndim 2 >>> >>> This seems to take 2 dimension. I presumed the above case and the case where length 0 is provided to be treated same(I mean same behaviour). Correct me if I am wrong. Also, could u please point out any documentation to understand the logic behind creating elements of type list in case 2(with second grid of length 0) ? If possible. I am curious to understand. Kind Rgds, Vinodhini B > On 30 Dec 2017, at 11:36 PM, Derek Homeier > <de...@astro.physik.uni-goettingen.de> wrote: > > On 30 Dec 2017, at 11:37 am, Vinodhini Balusamy <me.vi...@gmail.com> wrote: >> >> Case 2: >>>>> >>>>> x12 = np.array([[1,2,3],[]]) >>>>> x12.ndim >> 1 >>>>> print(x12) >> [list([1, 2, 3]) list([])] >>>>> >> In case 2, I am trying to understand why it becomes 1 dimentional ?!?! >> >> >> Case 3: >>>>> >>>>> x12 = np.array([1,2,3]) >>>>> x12.ndim >> 1 >>>>> print(x12) >> [1 2 3] >>>>> >> This seems reasonable to me to be considered as 1 dimensional. >> >> Would like to understand case 2 a bit more to get to know if i am missing >> something. >> Will be much appreciated if someone to explain me a bit. >> > Welcome to the crowd! > You cannot create a regular 2-dimensional integer array from one row of > length 3 > and a second one of length 0. Thus np.array chooses the next most basic type > of > array it can fit your input data in - you will notice in case 2 the array > actually has two > elements of type ‘list’, and you can verify that > > In [1]: x12 = np.array([[1,2,3],[]]) > In [2]: x12.dtype > Out[2]: dtype('O') > In [3]: x12.shape > Out[3]: (2,) > > i.e. it has created an array of dtype ‘object’, which is probably not what > you expected > (and nothing you could perform standard arithmetic operations on: > > In [4]: x12+1 > TypeError: can only concatenate list (not "int") to list > > HTH > Derek > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion