Усреднение по n строкам, вывод в массив и затем продолжение - PullRequest
0 голосов
/ 01 февраля 2012

первый пост и, вероятно, немного просто!

Я пытаюсь прочитать большой файл данных, где я хочу прочитать отметку времени из заголовка, а затем усреднить следующие 128 строк (содержащих числа). Как только это будет сделано, я хочу сначала отсортировать данные по самым высоким значениям. Я использую NumPy и Scipy.

Для этого у меня изначально был grep'd из файла необработанных данных.

grep "LL" RAW.TXT > LL.TXT

Поскольку я хочу только 6-й столбец, я делаю это на Python:

DATA_LL = genfromtxt(LL.TXT,usecols = (5))

После этого я хочу усреднить первые 128 строк и вывести это значение в массив. Я хочу, чтобы затем перейти к следующим 128 строкам и так далее до конца файла. Вывод, возможно, в переменную с именем AVERAGES.

Этот бит, я не уверен, как это сделать.

После создания этого массива я хочу прикрепить к нему метки времени:

for line in RAW.readlines():
  if line.contains("Time of record"):
    AVERAGES.append(line)

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

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

Я думаю, что я на правильном пути, но любая помощь очень ценится!

Приветствия

1 Ответ

1 голос
/ 02 февраля 2012

Один довольно простой способ сделать это - отследить метки времени в отдельном списке, а затем использовать np.concatenate (документация для этой функции весьма полезна) с ключевым словом axis=1 для присоедините массив временных меток к вашему среднему массиву. Однако самая большая проблема, с которой я сталкиваюсь при таком подходе, заключается в том, что, как написано, ваша переменная AVERAGES будет добавляться со строками, а не с плавающей точкой, тогда как массивы NumPy однородны по типу данных. Без каких-либо подробностей о проблеме, которую вы пытаетесь решить, у меня нет конкретного предложения о том, как это исправить, кроме использования strptime и mktime функций Python time module конвертировать метки времени в числа с плавающей точкой.

...