具有巨大数据集的相关矩阵 - Python

时间:2016-05-13 09:01:53

标签: python numpy pandas

在python中,当我有一个数据集X,其行是样本的不同元素而列是样本的不同特征时,我通常按如下方式计算相关矩阵(假设为零均值):

import numpy as np
np.transpose(X).dot(X)/row

现在我有一个数据集X,其中有10万行和1百万列,如果我尝试计算相关矩阵,计算机仍然会被阻止。 执行for循环的替代方法在我看来是不切实际的,因为对于较小的数据集来说也很慢。

我该如何管理这么多数据?

1 个答案:

答案 0 :(得分:0)

也许你可以使用发电机?我不知道它是否可以快速接受,但它会更好地记忆,因此计算机不会阻塞。 像这样https://gist.github.com/thatdatabaseguy/2577076

解释这个例子:

import numpy as np

def my_gen(some_tuple):
    for each in some_tuple:
        yield each

X = np.fromiter(my_gen(database.get_data()))  # get_data() would return a cursor

修改: 在这种情况下,您无法找到另一种缩减/转换/拆分数据的方法。无论哪种方式,在单台计算机上处​​理起来都很困难。 祝你好运!