J'ai un fichier CSV qui ressemble au ci-dessous J'ai besoin de convertir ceci en une matrice numpie.
Si j'utilise ci-dessous code p> i get si je fais cela p> Il ne supprima pas les supports de démarrage et de fin de la liste et des sorties telles que P> nan code> dans la sortie. p> array = ([['0.037621960043907166,', '0.04622473940253258,',
'0.9161532521247864'],
['0.030109738931059837,', '0.03261643648147583,',
'0.9372738003730774'],
['0.030109738931059837,', '0.03261643648147583,',
'0.9372738003730774']], dtype='<U22')
3 Réponses :
Tant que vous connaissez le format du contenu, je pense qu'un simple tranchant fera
import numpy as np
tmp = open('tmp', 'r').readlines()
tmp = np.array([[float(num) for num in item[1:-2].split(',')] for item in tmp])
Ce dont vous avez besoin est Eval ()
from numpy import array
with open('your file name', 'r') as f:
str_lines = f.readLines()
lines = [eval(x) for x in str_lines]
ary = array(lines)
f.close()
Lorsque vous avez un fichier texte comme: Vous pouvez essayer ceci: p> sortie: p> array([['0.037621960043907166', ' 0.04622473940253258',
' 0.9161532521247864'],
['0.030109738931059837', ' 0.03261643648147583',
' 0.9372738003730774'],
['0.030109738931059837', ' 0.03261643648147583',
' 0.9372738003730774']], dtype='<U20')