Недавно я начал оценивать некоторые данные с помощью Python. Тем не менее, мне кажется сложным оценивать и манипулировать моими записанными данными.
Например, мой .txt файл состоит из:
1551356567 0598523403 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523436 0000003362 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523469 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523502 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523766 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523799 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523832 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523865 0000003314 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523898 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356567 0598523931 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1551356568 0598524756 0000003384 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Важными значениями являются только третий столбец (с 3362) и первый (1551 ...), причем третий столбец должен быть осью x, а первый - осью y. Важны только строки со значением, не равным 0. Идея состоит в том, чтобы создать цикл, который ищет значения в третьем столбце, и если есть значение! = 0, то это значение должно быть сохранено в x-list (x), а соответствующее значение y - в y-списке. (у).
В настоящее время мой скрипт для чтения и обработки данных выглядит следующим образом:
import numpy as np
rawdata = np.loadtxt("file.txt")
num_lines = sum(1 for line in open("file.txt"))
with open("file.txt") as hv:
line = hv.readline()
x = list()
y = list()
i = 1
j = 0
while line != num_lines:
if rawdata[j][2] != 0:
x = x.append(rawdata[j][2])
y = x.append(rawdata[j][0])
else:
j += 1
if i == num_lines:
break
i += 1
print(x)
print(y)
Я думаю, что есть проблемы с локальными и глобальными переменными, но я не мог их решить, скажем, «обновить» мои списки новыми значениями. В конце должен быть список только с:
[3362, 3314, 3384] for x and
[1551356567, 1551356567, 1551356568] for y
Есть ли у вас какие-либо предложения, как я могу "обновить" свой список?