0
votes

Convertir des valeurs dans le fichier texte en tableau de Python

J'ai un fichier texte data.txt qui ressemble à ce type: xxx

(etc. dans un motif récurrent). Je veux avoir uniquement les valeurs d'adpos et les mettre dans un tableau 6x6. J'ai essayé ce qui suit: xxx

i Obtenez ce qui suit: xxx

maintenant, je veux me débarrasser de la chaîne "Admas", convertissez les valeurs pour flotter et remodeler dans un tableau 6x6. Est-ce que quelqu'un sait comment faire cela? Aider serait apprécié.


1 commentaires

Comment appelez-vous un tableau ici? Un tableau 2D numpy, une liste de listes ou ...?


3 Réponses :


1
votes

Ce n'est pas le plus propre, mais il semble fonctionner:

  • i Créez des espaces avant le moins - afin de diviser ultérieurement entre les chiffres
  • i Supprimer les espaces pour E - , en raison d'un effet secondaire du point précédent
  • i Supprimer le texte \ n écrit dans le texte avec remplacer ("\\ n", "")
  • i Supprimer la "ligne suivante" des caractères "code" \ n
  • et je supprimai les 11 premiers caractères (ex: admis ) avec [11:] xxx

    sortie: xxx


1 commentaires

Merci pour votre réponse. Le code ci-dessous pour moi a l'air plus propre et plus facile à travailler avec.



0
votes

Vous devez envisager d'utiliser des pandas pour cela.

df.loc[df['column_name'] == ADAM]


3 commentaires

Dans mon cas particulier, je ne veux pas utiliser de pandas, car mes données sont 6x6x36.


par 36 vous voulez dire 36 fichiers?


Dans mon cas, ce sont des coefficients 6x6 par fréquence et j'ai 36 fréquences. Toutes les données sont stockées dans 1 fichier texte: 36 valeurs pour une fréquence, puis d'autres données, puis à nouveau 36 valeurs pour la fréquence suivante, etc.



1
votes

Selon vos exigences, j'ai proposé la solution suivante:

[
[8046.0, 0.008206, 15320.0, 0.1066, 6982000.0, -2.82], 
[-0.006868, 200900.0, 0.01454, 951600.0, -1.209, 6058000.0], 
[15430.0, 0.9179, 1459000.0, 5.463, 39180000.0, -29.04], 
[-0.2267, 953700.0, 3.902, 30710000.0, -134.4, 107300000.0], 
[7005000.0, 22.6, 39780000.0, 62.96, 7586000000.0, -2125.0], 
[1.093, 6052000.0, -6.178, 106500000.0, -1416.0, 1941000000.0]
]


1 commentaires

Merci pour votre réponse. Je trouve votre solution le plus propre.