silencer - 2 years ago 91
Python Question

# numpy array that is (n,1) and (n,)

What is the difference between a numpy array (lets say X) that has a shape of (N,1) and (N,). Aren't both of them Nx1 matrices ? The reason I ask is because sometimes computations return either one or the other.

This is a 1D array:

``````>>> np.array([1, 2, 3]).shape
(3,)
``````

This array is 2D but there is only one element in the first dimension:

``````>>> np.array([[1, 2, 3]]).shape
(1, 3)
``````

Transposing gives the shape you are asking for:

``````>>> np.array([[1, 2, 3]]).T.shape
(3, 1)
``````

Now, look at the array. Only the first column of this 2D array is filled.

``````>>> np.array([[1, 2, 3]]).T
array([[1],
[2],
[3]])
``````

Given these two arrays:

``````>>> a = np.array([[1, 2, 3]])
>>> b = np.array([[1, 2, 3]]).T
>>> a
array([[1, 2, 3]])
>>> b
array([[1],
[2],
[3]])
``````

``````>>> a * b
array([[1, 2, 3],
[2, 4, 6],
[3, 6, 9]])
``````

The missing numbers are filled in. Think for rows and columns in table or spreadsheet.

``````>>> a + b
array([[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])
``````

Doing this with higher dimensions gets tougher on your imagination.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download