Difference Between Single And Double Bracket Numpy Array?
Solution 1:
In [71]: np.array([[0,0,0,0]]).shape
Out[71]: (1, 4)
In [72]: np.array([0,0,0,0]).shape
Out[72]: (4,)
The former is a 1 x 4 two-dimensional array, the latter a 4 element one-dimensional array.
Solution 2:
The difference between single and double brackets starts with lists:
In [91]: ll=[0,1,2]
In [92]: ll1=[[0,1,2]]
In [93]: len(ll)
Out[93]: 3
In [94]: len(ll1)
Out[94]: 1
In [95]: len(ll1[0])
Out[95]: 3
ll
is a list of 3 items. ll1
is a list of 1 item; that item is another list. Remember, a list can contain a variety of different objects, numbers, strings, other lists, etc.
Your 2 expressions effectively make arrays from two such lists
In[96]: np.array(ll)
Out[96]: array([0, 1, 2])
In[97]: _.shapeOut[97]: (3,)
In[98]: np.array(ll1)
Out[98]: array([[0, 1, 2]])
In[99]: _.shapeOut[99]: (1, 3)
Here the list of lists has been turned into a 2d array. In a subtle way numpy
blurs the distinction between the list and the nested list, since the difference between the two arrays lies in their shape, not a fundamental structure. array(ll)[None,:]
produces the (1,3)
version, while array(ll1).ravel()
produces a (3,)
version.
In the end result the difference between single and double brackets is a difference in the number of array dimensions, but we shouldn't loose sight of the fact that Python first creates different lists.
Solution 3:
When you defined an array with two brackets, what you were really doing was declaring an array with an array with 4 0's inside. Therefore, if you wanted to access the first zero you would be accessing
your_array[0][0]
while in the second array you would just be accessing your array[0]
. Perhaps a better way to visualize it is
array: [
[0,0,0,0],
]
vs
array: [0,0,0,0]
Post a Comment for "Difference Between Single And Double Bracket Numpy Array?"