web-dev-qa-db-fra.com

Python remodeler la liste en tableau ndim

Salut j'ai une liste plate qui est de longueur 2800, elle contient 100 résultats pour chacune des 28 variables: Voici un exemple de 4 résultats pour 2 variables

[0,
 0,
 1,
 1,
 2,
 2,
 3,
 3]

Je voudrais remodeler la liste en un tableau (2,4) afin que les résultats de chaque variable soient dans un seul élément.

[[0,1,2,3],
 [0,1,2,3]]

Ce qui suit me donne les valeurs dans le même ordre, mais ce n'est pas correct:

np.shape = (2,4) 

par exemple.

[[0,0,0,0]
 [1,1,1,1]]
14
BenP

Vous pouvez penser à remodeler que la nouvelle forme est remplie ligne par ligne (la dernière dimension varie le plus rapidement) à partir de la liste/du tableau d'origine aplati.

Une solution simple consiste à façonner la liste en un tableau (100, 28) puis à la transposer:

x = np.reshape(list_data, (100, 28)).T

Mise à jour concernant l'exemple mis à jour:

np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (4, 2)).T
# array([[0, 1, 2, 3],
#        [0, 1, 2, 3]])

np.reshape([0, 0, 1, 1, 2, 2, 3, 3], (2, 4))
# array([[0, 0, 1, 1],
#        [2, 2, 3, 3]])
19
kazemakase