Every array in numpy has a number of dimensions, "np.array" is a function that can create an array numpy given a list.
when you write vector_1 = np.array([1,2,1]) you are passing a list of number to thet function array that will create a 1D array. As you are showing: vector_1.shape will return a tuple with the sizes of each dimension of the array that is: (3,) Note the comma thta indicate that is a tuple. While if you write: vector_2 = np.array([[1,2,3]]) You are passing a list of list to the function array that will instruct it to crete a 2D array, even though the size of the first dimension is 1: vector_2.shape (1,3) It is still a tuple as you can see. Try: vector_3 = np.array([[1,2,3],[4,5,6]]) And you'll see that i'll return a 2D array with a shape: vector_3.shape (2,3) As the external list has 2 elements that is two sublists each with 3 elements. The vector_2 case is just when the external list has only 1 element. I hope it is more clear now. Cherrs, Il giorno venerdì 21 giugno 2019 08:29:36 UTC+2, Markos ha scritto: > Hi, > > I'm studying Numpy and I don't understand the difference between > > >>> vector_1 = np.array( [ 1,0,1 ] ) > > with 1 bracket and > > >>> vector_2 = np.array( [ [ 1,0,1 ] ] ) > > with 2 brackets > > The shape of vector_1 is: > > >>> vector_1.shape > (3,) > > But the shape of vector_2 is: > > >>> vector_2.shape > (1, 3) > > The transpose on vector_1 don't work: > > >>> vector_1.T > array([1, 0, 1]) > > But the transpose method in vector_2 works fine: > > >>> vector_2.T > array([[1], > [0], > [1]]) > > > I thought that both vectors would be treated as an matrix of 1 row and 3 > columns. > > Why this difference? > > Any tip? > > Thank you, > Markos -- https://mail.python.org/mailman/listinfo/python-list