Нахождение определенной строки файла с использованием Numpy - PullRequest
0 голосов
/ 27 декабря 2018

Я использую matplotlib для составления таблицы весов с информацией из файла, который содержит как текст, так и цифры.Числа - это две строки, в которых указаны веса и даты.Файл выглядит следующим образом:

1. anonymous 
2. anonymous
3. 
4. 34, 76
5. 12202018, 12222018

Я хочу использовать numpy для получения веса (3-я строка) и даты (4-я строка), но я не могу найти способ просто извлечь одну строку дляучасток в матплотлиб.

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

import matplotlib.pyplot as plt
import csv

x = []
y = []

with 
open('example.txt') as csvfile:
    readCSV = list(csv.reader(csvfile, delimiter = ','))
    row3 = readCSV[3]

    for row in row3:
        x.append(int(row[0]))
        y.append(int(row[1]))

plt.plot(x, y)

plt.xlabel('x')
plt.ylabel('y')
plt.title("Weight Chart")
plt.legend()
plt.show()

Произошла ошибка:

row3 = int(readCSV[3])
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'

Просто чтобы уточнить:

Я хочу использовать numpy для получения одной строкифайл (с разделителем ',') для использования в качестве оси и оси y для matplotlib.

Большое спасибо!

1 Ответ

0 голосов
/ 27 декабря 2018

Это позволит получить значения из файла в ваши массивы:

def process(line):
    line = line.rstrip()
    line = line.split('.')[1]
    line = line.split(',')
    return line

x = list()
y = list()
counter = 0
with open('example.txt') as data_file:
    for line in data_file:
        if (counter == 3) or (counter == 4):
            result = process(line)
            x.append(int(result[0]))
            y.append(int(result[1]))
        counter += 1

print x
print y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...