创建带有可选填充的numpy数组

时间:2019-02-01 12:35:33

标签: python numpy

任务相对简单:读取文件,为每个条目获取记录,为每个记录检查字典的年份并创建时间配置文件。我想尽可能有效地执行此操作,因为文件(和字典)很大。

我的代码如下:

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]]

由于我将所有这些合并为一个大的numpy数组,因此我希望它们都具有相同的大小,例如最近100年。我实际上并不需要这些年,但是将它们留在那会更容易发现此类问题。

我不知道文件中的确切条目数,因此无法提前生成数组。我认为应该有一种比创建所需大小的数组,并在计数器上循环以增加特定索引更聪明的方法。

0 个答案:

没有答案