Examples of how to prepend an n-by-1 column of ones to a matrix of training input data:
Prepend an n-by-1 column of ones to a training dataset
Let's consider the following matrix X of training data X (with n=6 observations and d=3 features):
\begin{equation}
X = \left( \begin{array}{ccc}
x_{11} & x_{12} & x_{13} \\
x_{21} & x_{22} & x_{23} \\
x_{31} & x_{32} & x_{33} \\
x_{41} & x_{42} & x_{43} \\
x_{51} & x_{52} & x_{53} \\
x_{61} & x_{62} & x_{63}
\end{array}\right)
\end{equation}
the goal is to prepend an n-by-1 column of ones to the matrix X:
\begin{equation}
X = \left( \begin{array}{ccc}
1 & x_{11} & x_{12} & x_{13} \\
1 & x_{21} & x_{22} & x_{23} \\
1 & x_{31} & x_{32} & x_{33} \\
1 & x_{41} & x_{42} & x_{43} \\
1 & x_{51} & x_{52} & x_{53} \\
1 & x_{61} & x_{62} & x_{63}
\end{array}\right)
\end{equation}
As an example, let's create a matrix X with random element:
>>> import numpy as np
>>> X = np.random.randint(100, size=(6,3))
>>> X
array([[46, 16, 11],
[79, 95, 54],
[35, 3, 90],
[62, 71, 63],
[14, 61, 80],
[92, 69, 57]])
to create a matrix of ones of size (6-by-1) a solution is to use the numpy finction ones():
>>> b = np.ones(X.shape[0])
>>> b.shape
(6,)
than can be concatenated to the matrix X using the numpy function numpy.c_ , illustration:
>>> X = np.c_[np.ones(X.shape[0]),X]
>>> X
array([[ 1., 46., 16., 11.],
[ 1., 79., 95., 54.],
[ 1., 35., 3., 90.],
[ 1., 62., 71., 63.],
[ 1., 14., 61., 80.],
[ 1., 92., 69., 57.]])
Note: check if d < n else transpose the matrix:
>>> X
array([[46, 79, 35, 62, 14, 92],
[16, 95, 3, 71, 61, 69],
[11, 54, 90, 63, 80, 57]])
>>> if X.shape[0] < X.shape[1]: X = X.T
...
>>> X
array([[46, 16, 11],
[79, 95, 54],
[35, 3, 90],
[62, 71, 63],
[14, 61, 80],
[92, 69, 57]])
Add a column of 1 to a 1D matrix
To make a prediction it is necessary to add a 1 as well, example:
>>> Y_new = np.array([11., 64., 20.])
>>> Y_new
array([ 11., 64., 20.])
A solution is to use the numpy function numpy.concatenate:
>>> Y_new = np.concatenate([np.ones(1),Y_new])
>>> Y_new
array([ 1., 11., 64., 20.])
References
Links | Site |
---|---|
numpy.c_ | scipy doc |
numpy.concatenate | scipy doc |
numpy.transpose | scipy doc |
ones() | scipy doc |