Exemples de comment ajouter une colonne de 1 à une matrice avec numpy
Ajouter une colonne de 1 à une matrice avec des données d'entraînement
Considérons la matrice X avec des données d'entraînement (avec n=6 observations et 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}
L'objectif est d'ajouter une colonne de 1 à la matrice 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}
Créons une matrice avec numpy:
>>> import numpy as np>>> X = np.random.randint(100, size=(6,3))>>> Xarray([[46, 16, 11],[79, 95, 54],[35, 3, 90],[62, 71, 63],[14, 61, 80],[92, 69, 57]])
Pour créer une matrice de taille (6-by-1) on peut utiliser la fonction ones():
>>> b = np.ones(X.shape[0])>>> b.shape(6,)
et pour ajouter celle ci a la matrice X on peut ensuite utiliser numpy.c_, exemple:
>>> X = np.c_[np.ones(X.shape[0]),X]>>> Xarray([[ 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: verifier si d < n sinon transposer la matrice:
>>> Xarray([[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...>>> Xarray([[46, 16, 11],[79, 95, 54],[35, 3, 90],[62, 71, 63],[14, 61, 80],[92, 69, 57]])
Ajouter une colonne de 1 à une matrice 1D
Ajouter une colonne de 1 à une matrice 1D, exemple
>>> Y_new = np.array([11., 64., 20.])>>> Y_newarray([ 11., 64., 20.])
On peut utiliser la fonction numpy concatenate:
>>> Y_new = np.concatenate([np.ones(1),Y_new])>>> Y_newarray([ 1., 11., 64., 20.])
Références
| Liens | Site |
|---|---|
| numpy.c_ | scipy doc |
| numpy.concatenate | scipy doc |
| numpy.transpose | scipy doc |
| ones() | scipy doc |
