J'ai un tableau de matrices toutes de tailles / dimensions différentes et j'ai besoin de les remplir toutes à la même taille (805, 16866). Ci-dessous est le code que j'utilise actuellement pour le faire, mais je pense qu'il pourrait être vectorisé, mais je ne sais pas comment le faire.

x1 = np.zeros((805, 16866))

for i in range(x[0].shape[0]):
    for j in range(x[0].shape[1]):
        x1[i, j] = x[0][i, j]
1
Henry Hargreaves 18 mars 2019 à 20:41

2 réponses

Meilleure réponse

Dans l'exemple ci-dessus, x1[:x[0].shape[0], :x[0].shape[1]] = x devrait fonctionner

2
Mister Brainley 18 mars 2019 à 17:47

Il y a la fonction numpy.pad (docs) qui fait ce dont vous avez besoin.

Le code que vous voulez est

x1 = np.zeros((805,16866))

for i in range(x.shape[0])
  x1[i,:]= np.pad(x[i,:],x1.shape[0],'constant',constant_values=0)
0
pittix 18 mars 2019 à 17:53