Je suis intéressé par les deux premières colonnes, que je voudrais convertir à un tableau numpy.
Jusqu'à présent, j'ai proposé la solution suivante: p> Ceci entraîne un tableau 2-D: P> br code> est le nom d'une liste des chaînes qui va comme ceci: array([[ 0., 0.],
[ 14., 0.],
[ 19., 0.],
[ 22., 0.],
...
3 Réponses :
Vous pouvez essayer de préprocéder (avec AWK pour un exemple) la liste des chaînes s'ils proviennent d'un fichier et utilisent numpy.fromtxt. Si vous ne pouvez rien faire de la façon dont vous obtenez cette liste, vous avez plusieurs possibilités:
modifier em> p> Peut-être que cette approche est légèrement plus rapide: p>
Aimé la pensée "hors de la boîte"!
Changer à p> peut entraîner une légère vitesse. Puisque vous ne vous souciez que des deux premiers articles séparés dans chaque ligne, il n'est pas nécessaire de diviser la ligne entière. Le 2 code> dans i.split ('', 2) code> indique divisé code> pour simplement faire un maximum de 2 divisions. Par exemple, P> In [11]: x='14 0.000000 -- (long term 0.000000)\n'
In [12]: x.split()
Out[12]: ['14', '0.000000', '--', '(long', 'term', '0.000000)']
In [13]: x.split(' ',2)
Out[13]: ['14', '0.000000', '-- (long term 0.000000)\n']
Merci pour l'explication du deuxième argument de Split code>!
Ceci est considérablement plus rapide pour moi: modifications: p>
aa = numpy.array ([x.split ('' ', 2) [0: 2] pour x dans BR], dtype = "flotteur")
Bon à savoir sur énumérer code>: Je n'étais pas au courant de ça! Merci également à tsteabert à sa contribution. Les vitesses des deux solutions semblent assez similaires à moi.