не удалось преобразовать строку в число с плавающей запятой с HUGE TXT FILE - PullRequest
0 голосов
/ 13 июня 2018

У меня огромный текстовый файл Это второй текстовый файл с меткой hhrr1996221.txt.zip

Я пытаюсь проанализировать данные по количеству времени, время начинается с 2мс, а затем задаются 6 наборов данных (отсчетов) и повторяются.

Я не использовал python с прошлого года, хотя хочу улучшить свои навыки кодирования.Я использовал следующий код:

           import numpy as np
           hh=np.loadtxt('hhrr1996221.txt', delimiter=',')
           time= hh[1:,0]

Я просто хотел проверить, получу ли я массив, в конце концов я тоже хочу подсчитать, а затем построить график

сообщение об ошибке.я получаю

runfile('C:/Users/fahad/.spyder-py3/untitled0.py', wdir='C:/Users/fahad/.spyder-py3')
Traceback (most recent call last):

File "<ipython-input-44-d1860d9262f7>", line 1, in <module>
runfile('C:/Users/fahad/.spyder-py3/untitled0.py', wdir='C:/Users/fahad/.spyder-py3')

File "C:\Users\fahad\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
execfile(filename, namespace)

File "C:\Users\fahad\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/fahad/.spyder-py3/untitled0.py", line 9, in <module>
hh=np.loadtxt('hhrr1996221.txt', delimiter=',')

File "C:\Users\fahad\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1092, in loadtxt
for x in read_data(_loadtxt_chunksize):
File "C:\Users\fahad\Anaconda3\lib\site-packages\numpy\lib\npyio.py",     line 1019, in read_data




   items = [conv(val) for (conv, val) in zip(converters, vals)]

  File "C:\Users\fahad\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1019, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]

  File "C:\Users\fahad\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 738, in floatconv
return float(x)

ValueError: could not convert string to float: '2.0 264 264 244 252 504 252'

Я был бы признателен за любую помощь, которую я могу, если у вас, ребята, есть другой код, который я могу использовать, пожалуйста, сообщите мне и проведите меня через него.

Приветствия.

1 Ответ

0 голосов
/ 13 июня 2018

Ваш разделитель - пробел.

Попробуйте:

import numpy as np
hh=np.loadtxt(filename, delimiter=' ', skiprows=1)
time= hh[1:,0]
print( time )

Вывод:

[  2.10000000e+00   2.20000000e+00   2.30000000e+00 ...,   8.64027000e+04
   8.64028000e+04   8.64029000e+04]
...