我有一个200K行的巨大文件,我需要通过计算每行中不同的单词来找出滚动中位数。
我使用numpy来计算中位数,如下所示
a = np.array([])
np.insert(a, 0, len(unique_word_list_by_line))
median = np.median(a)
我觉得这不高效,因为numpy每次插入元素时都会创建一个新数组。有没有办法将元素插入到numpy数组中?
由于
答案 0 :(得分:3)
动态填充numpy数组永远不会有好处,它涉及调整大小和复制。
滚动中位数似乎并非微不足道。 This blog article讨论了不同的实现,例如Skip list。
编辑:看来你用的是熊猫。在pandas中,使用跳过列表并跳过已经实现的NaN的实现。看看here。在纯python中实现它的配方也可以找到here。
答案 1 :(得分:1)