Создание массива с дополнительными отступами - PullRequest
0 голосов
/ 01 февраля 2019

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

Код, который у меня есть, выглядит следующим образом:

import numpy as np
with open('entries.tsv', 'r') as entries:
    offset = 1920
    size = 100
    for line in islice(entries, None):
        prot, recs = line.strip().split('\t')
        ids = recs.split(" ")
        years = Counter([id_dict[id] for id in ids])
        print(np.array(sorted(list(years.items()))))
        input()

Проблема здесь в том, что вы можете получить выходные данные, где пропущены определенные годы, поскольку нет записей, соответствующих этому году (1995в данном случае):

[[1992    3]
 [1993    3]
 [1994    2]
 [1996    2]
 [1997    2]
 [1998    5]
 [1999   11]
 [2000    3]
 [2001    4]
 [2002    3]
 [2003    3]
 [2004    2]
 [2005    3]
 [2006    3]
 [2007    3]
 [2008    1]
 [2009    2]
 [2010    2]
 [2011    3]
 [2012   10]
 [2013    4]
 [2014    4]
 [2015    5]
 [2016    2]
 [2017    5]
 [2018    4]
 [2019    1]]

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

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

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