178 votes

Comment ajouter de nouvelles dimensions à un tableau Numpy ?

Je commence avec un tableau numpy d'une image.

In[1]:img = cv2.imread('test.jpg')

La forme est celle à laquelle on peut s'attendre pour une image RVB de 640x480.

In[2]:img.shape
Out[2]: (480, 640, 3)

Cependant, l'image que je possède est une image d'une vidéo de 100 images. Idéalement, j'aimerais avoir un tableau unique qui contienne toutes les données de cette vidéo, de telle sorte que img.shape renvoie à (480, 640, 3, 100) .

Quelle est la meilleure façon d'ajouter l'image suivante - c'est-à-dire le prochain ensemble de données d'image, un autre tableau 480 x 640 x 3 - à mon tableau initial ?

0voto

Cela vous permettra d'ajouter des axes où vous le souhaitez

    import numpy as np
    signal = np.array([[0.3394572666491664, 0.3089068053925853, 0.3516359279582483], [0.33932706934615525, 0.3094755563319447, 0.3511973743219001], [0.3394407172182317, 0.30889042266755573, 0.35166886011421256], [0.3394407172182317, 0.30889042266755573, 0.35166886011421256]])

    print(signal.shape)
#(4,3)
    print(signal[...,np.newaxis].shape)  or  signal[...:none]
#(4, 3, 1) 
    print(signal[:, np.newaxis, :].shape)  or signal[:,none, :]

#(4, 1, 3)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X