J'ai recherché diverses questions ici, mais je suis incapable de trouver une solution adéquate pour enregistrer mon tableau afin qu'il soit lisible dans un fichier texte. J'ai un tableau numpy avec la forme (13,5) qui contient des chaînes. Lorsque j'utilise np.savetxt, tout est imprimé sur une seule ligne.

Plus d'informations sur le tableau: type: classe 'numpy.ndarray', type d'entrées: classe 'numpy.str_'.

Voici la ligne que j'utilise pour imprimer mon tableau:

np.savetxt('file_name.txt', array_name, fmt="%s")

Pourquoi est-il imprimé sur une seule ligne? Comment puis-je le faire imprimer de manière facile à lire (pas tous sur une seule ligne)?

array_name=np.array(
[['Champion' 'Wins' 'Plays' 'Win %' 'Popularity'],
['Ahri' '17' '25' '68.0' '1.25'],
['Akali' '4' '7' '57.14' '0.35'],
['Alistar' '28' '56' '50.0' '2.8'],
['Amumu' '3' '4' '75.0' '0.2'],
['Anivia' '5' '6' '83.33' '0.3'],
['Annie' '1' '9' '11.11' '0.45'],
['Ashe' '7' '11' '63.64' '0.55'],
['Azir' '16' '28' '57.14' '1.4'],
['Bard' '19' '34' '55.88' '1.7'],
['Blitzcrank' '9' '16' '56.25' '0.8'],
['Brand' '0' '1' '0.0' '0.05'],
['Braum' '5' '16' '31.25' '0.8']])
0
Mark 23 juil. 2015 à 07:32

2 réponses

Meilleure réponse

OK, maintenant que vous avez fourni un exemple de tableau, il est facile de voir pourquoi vous obtenez le résultat que vous décrivez: vous n'avez pas de virgules séparant ce qui est censé être des chaînes distinctes dans chaque ligne. Python concatène les littéraux de chaîne adjacents:

>>> 'a' 'b' 'c'
'abc'

Ainsi, votre tableau a 1 colonne, pas 5:

>>> array_name.shape
(13, 1)

>>> array_name[0, 0]
'ChampionWinsPlaysWin %Popularity'

>>> array_name[0, 1]
IndexError          Traceback...
...
IndexError: index 1 is out of bounds for axis 1 with size 1
2
BrianO 23 juil. 2015 à 20:59

Oui, plus d'informations nécessaires - je ne peux pas reproduire ce que vous décrivez. Après avoir exécuté ceci:

import numpy as np
ra = np.array([['Here', 'is', 'my'],
               ['array', 'of', 'strings']])
np.savetxt('temp.txt', ra, fmt="%s")

Le fichier temp.txt contient:

Here is my
array of strings

Une ligne par ligne, chacune se terminant par '\n', avec des éléments dans chaque ligne séparés par des espaces.

-1
BrianO 23 juil. 2015 à 04:48