Difference between array( [1,0,1] ) and array( [ [1,0,1] ] )

edmondo.giovannozzi at gmail.com edmondo.giovannozzi at gmail.com
Fri Jun 21 06:44:12 EDT 2019


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




More information about the Python-list mailing list