2024-09-28 16:20:26 发布
网友
在python中,当我有一个数据集X,它的行是样本的不同元素,列是样本的不同特征,我通常计算相关矩阵如下(假设为零均值):
import numpy as np np.transpose(X).dot(X)/row
现在我有一个数据集X,它有1000万行和100万列,如果我试图计算相关矩阵,计算机仍然是阻塞的。 在我看来,执行for循环的另一种方法似乎不可行,因为对于较小的数据集,它的速度非常慢。在
我该如何管理如此多的数据?在
也许你可以用发电机?我不知道它是否可以接受的速度,但它会更好的内存明智,这样计算机就不会阻塞。 像这样的东西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
编辑: 在这种情况下,您无法找到另一种减少/转换/拆分数据的方法。不管怎样,在一台计算机上都很难处理。 祝你好运!在
也许你可以用发电机?我不知道它是否可以接受的速度,但它会更好的内存明智,这样计算机就不会阻塞。 像这样的东西https://gist.github.com/thatdatabaseguy/2577076
解释示例:
编辑: 在这种情况下,您无法找到另一种减少/转换/拆分数据的方法。不管怎样,在一台计算机上都很难处理。 祝你好运!在
相关问题 更多 >
编程相关推荐