Comment ajouter un nouvel axe pour transformer une matrice de forme (n,) en (n, 1) avec numpy en python ?

Exemple de comment ajouter un nouvel axe pour transformer une matrice de forme (n,) en (n, 1) avec numpy en python:

Créer une matrice avec numpy

Créons d'abord une matrice avec numpy:

import numpy as np

A = np.arange(10)

donne

[0 1 2 3 4 5 6 7 8 9]

Si on test la forme de la matrice on obtient:

A.shape

donne ici

 (10,)

Ajouter un nouvel axe avec numpy.newaxis

Pour ajouter un nouvel axe, une solution est d'utiliser numpy.newaxis:

A = A[:,np.newaxis]

Ensuite, si nous vérifions la forme de la matrice A:

A.shape

on obtient une matrice de dimension

(10, 1)

et print(A) donne

[[0]
 [1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]
 [9]]

Note: il est également possible de faire

A = A[np.newaxis,:]

qui donne une matrice de dimension

(1,10,)

et A

[[[0]
    [1]
    [2]
    [3]
    [4]
    [5]
    [6]
    [7]
    [8]
    [9]]]

En utilisant reshape

Une autre solution est d'utiliser reshape

A = A.reshape(10,1)

print(A.shape)

donne

(10, 1)

Références