If **vector is also a matrix** as a matrix can have one row or one column then how do they differ? **I want to understand why weights for Sigmoid model is assigned as self.w = np.random.randn(1, X.shape[1]) whereas for Perceptron model it is self.w = np.random.randn(X.shape[1]).**

Is it correct to assign weights for sigmoid as self.w = np.random.randn(X.shape[1])?

In the following code snippet, V is of 1 dimension and Q is of 2 dimensions.

```
X = np.asarray([
[2.5, 2.5], [4, -1],
[2, 4], [1, 5]
])
# if this is one-row vector or matrix
Q = np.random.randn(1, X.shape[1])
# can this is also be called a matrix with one-row or as row vector?
V = np.random.randn(X.shape[1])
# shape: (4, 2), size: 8, dimension: 2
print(X.shape, X.size, X.ndim)
# shape: (1, 2), size: 2, dimension: 2
print(Q.shape, Q.size, Q.ndim)
# shape: (2,), size: 2, dimension: 1
print(V.shape, V.size, V.ndim)
```