Shape relates to the size of the dimensions of an N-dimensional array.
Size regarding arrays, relates to the amount (or count) of elements that are contained in the array (or sometimes, at the top dimension of the array - when used as length).
For example, let a be a matrix
1 2 3 4
5 6 7 8
9 10 11 12
the shape of a is (3, 4), the size of a is 12 and the size of a[1] is 4.
what's the difference between a numpy array with shape (x,) and (x, 1)?
python - numpy: "size" vs. "shape" in function arguments? - Stack Overflow
Question about .shape in python
The shape method returns a number for each dimension of the array, that can be 1 for vectors, 2 for matrices and it can be even more.
Look at these:
>>> np.array([1,2,3]).shapeMore on reddit.com
(3,)
>>> np.array([[1,2,3]]).shape
(1, 3)
>>> np.array([[1],[2],[3]]).shape
(3, 1)
>>> np.array([[[1],[2],[3]]]).shape
(1, 3, 1)
>>> np.array([[1,2], [3,4]]).shape
(2, 2)
>>> np.array([[[1],[2]], [[3],[4]]]).shape
(2, 2, 1)
What are the different methods to find the shape of a Numpy array? - Python - Data Science Dojo Discussions
How to use shape function in python?
What does shape function do in python?
Videos
hey, im doing an ai thing in school and my code didnt work as expected, and after 5 hours i found out i reshaped an array from (206,) to (206,1) and that made the results wrong. and from what i understand, the shape means the length of each dimension, and length is not 0 indexed so a size of 1 would be equal to just 1D no?
Shape relates to the size of the dimensions of an N-dimensional array.
Size regarding arrays, relates to the amount (or count) of elements that are contained in the array (or sometimes, at the top dimension of the array - when used as length).
For example, let a be a matrix
1 2 3 4
5 6 7 8
9 10 11 12
the shape of a is (3, 4), the size of a is 12 and the size of a[1] is 4.
Because you are working with a numpy array, which was seen as a C array, size refers to how big your array will be. Moreover, if you can pass np.zeros(10) or np.zeros((10)). While the difference is subtle, size passed this way will create you a 1D array. You can give size=(n1, n2, ..., nn) which will create an nD array.
However, because python users want multi-dimensional arrays, array.reshape allows you to get from 1D to an nD array. So, when you call shape, you get the N dimension shape of the array, so you can see exactly how your array looks like.
In essence, size is equal to the product of the elements of shape.
EDIT: The difference in name can be attributed to 2 parts: firstly, you can initialise your array with a size. However, you do not know the shape of it. So size is only for total number of elements. Secondly, how numpy was developed, different people worked on different parts of the code, giving different names to roughly the same element, depending on their personal vision for the code.
I'm doing a project where I gotta do dot product without .dot and such for vectors and matrices, I am using .shape to get back the number of rows and columns for a matrix/vector. I got an error that said valueerror: not enough values to unpack(expected 2, got 1) at the line where I try to get the rows and columns: it's like rows, columns = a.shape. my professor said this happens because when a is a vector and not a matrix it only returns 1 value, but from what I can see online it returns 2 even if it's a vector? Should .shape not just return the number of rows and columns regardless?
» pip install pyshp