我试图搜索我的问题的答案,它可能存在,但我找不到,可能是因为我不知道如何命名。
所以让我们谈谈这一点。
我正在研究统计模型。我的数据集包含有关45个公共交通站点的信息和有关它们的静态信息(因此有45行和大约1000个特征列)和有规律间隔的时间测量值(因此2 000 000行但只有10列)。因此,“真实”信息量本身就足够小(大约500 Mb),可以轻松处理。
问题是python上的大多数统计模块都需要简单的2d数组,比如numpy的数组。所以我必须结合我的数据,对于所有2 000 000行测量,我必须附加与测量发生的电台相关的1000多列功能,所以我最终得到一个17 Gb的数据库......但是大部分都是多余的,我觉得这是浪费资源。
我有一个想法,但我完全不知道如何做到这一点:最终一个数组只是一个函数,对于给定的i和j返回一个值,所以我可以“模仿”,或来一个虚假的数组,伪数组,数组接口,可以被模块接受像一个numpy数组?我不明白为什么我不能这样做,因为最终一个数组是一个函数(i:j) - >一个[i] [j]。我的访问速度可能比经典阵列的内存访问慢一点,但这是我的问题,它仍然会很快。我只是不知道该怎么做......
提前感谢您,告诉我是否需要提供更多信息或更改我提出问题的方式!
编辑:
好吧也许我可以稍微澄清一下我的问题:
我的数据可以以关系数据库或对象数据库的方式呈现。这种格式相当小(500 Mb),但是当我合并我的表以使scikit-learn可以处理它时,它变得太大了(17 Gb +)并且它似乎浪费了内存!我可以使用技术处理大数据,这可能是一个解决方案,但是不可能阻止这样做吗?我是否可以直接在scikit_learn中使用我的数据而无需明确合并表格?我可以进行隐式合并,模拟数据结构而不占用额外的内存吗?