J'utilise pandas.Series et np.ndarray.
Le code est comme ça
>>> t
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> pandas.Series(t)
Exception: Data must be 1-dimensional
>>>
Et j’ai essayé de le convertir en tableau à 1 dimension:
>>> tt = t.reshape((1,-1))
>>> tt
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
cela reste multi-dimensionnel puisqu'il y a double '['.
Alors, comment obtenir un ndarray vraiment converti en tableau?
Après avoir cherché, il est dit qu'ils sont identiques . Cependant, dans ma situation, ils ne travaillent pas de la même manière.
Une alternative consiste à utiliser np.ravel :
>>> np.zeros((3,3)).ravel()
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
L'importance de ravel
par rapport à flatten
est ravel
copie uniquement les données si nécessaire et renvoie généralement une vue, alors que flatten
renverra toujours une copie des données.
Pour utiliser reshape afin d’aplatir le tableau:
tt = t.reshape(-1)
Utilisez .flatten
:
>>> np.zeros((3,3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> _.flatten()
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
EDIT: Comme indiqué, cela retourne une copie de l’entrée dans tous les cas. Pour éviter la copie, utilisez .ravel
comme suggéré par @Ophion.
tt = array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
oneDvector = tt.A1
C’est la seule approche qui ait résolu le problème des doubles crochets, c’est-à-dire la conversion en tableau 1D et matrice.