具有大尺寸内存问题的Python点产品

具有大尺寸内存问题的Python点产品,python,pca,dot-product,Python,Pca,Dot Product,我有矩阵X和尺寸(36000,3600) 我试图计算Sigma=X*X_转置,作为实现PCA算法的一部分 X是C_连续的 在第二维度上直接尝试和循环,都以内存问题结束(我的计算机内存不足,运行速度为8GB) 实现这一目标的最佳方式是什么? 附加我的代码 我不熟悉python(但不熟悉编程),这是我尝试做的第一件事,所以欢迎提供任何提示 非常感谢 class PCAProjector: def __init__(self, X): d, n = X.shape self.X =

我有矩阵X和尺寸(36000,3600) 我试图计算Sigma=X*X_转置,作为实现PCA算法的一部分

X是C_连续的

在第二维度上直接尝试和循环,都以内存问题结束(我的计算机内存不足,运行速度为8GB)

实现这一目标的最佳方式是什么? 附加我的代码

我不熟悉python(但不熟悉编程),这是我尝试做的第一件事,所以欢迎提供任何提示

非常感谢

class PCAProjector:

def __init__(self, X):
    d, n = X.shape
    self.X = X
    self.Sigma = np.zeros((d,d), dtype='float32', order='C')
    for i in range(n):
        print(i)
        x_i = np.zeros((d,1), dtype='float32', order='C')
        x_i = x_i + X[:,[i]]
        x_i_transpose = np.zeros((1,d), dtype='float32', order='C')
        x_i_transpose = x_i_transpose + np.transpose(x_i)
        i_result = np.dot(x_i, x_i_transpose)
        self.Sigma = self.Sigma + i_result

    self.Sigma = self.Sigma / n
    self.EigenVectorsSorted = EigenVecValculator().calEigenVectors(self.Sigma)

def projectAllSamples(self, numOfDimensions):
    """
    Projects samples to numOfDimensions dimensions

    Projects samples that were passed in Ctor (self.X)
    :param numOfDimensions: number of dimensions to project on
    :return: matrix of (numOfDimensions)X(numOfSamples) that contains the projected samples
    """
    transformationMatrix = self.EigenVectorsSorted[:, 0:numOfDimensions]
    return np.transpose(transformationMatrix)*self.X

“内存问题”?内存不足??是的,我说的“内存问题”是指我的电脑内存不足。我在8GB笔记本电脑上运行我的代码。“内存问题”?内存不足?是的,我说的“内存问题”是指我的电脑内存不足。我在8GB笔记本电脑上运行我的代码。