我有一个Python脚本来确定我的数据集中每个样本的协方差和本征函数,但它需要太多RAM。我应该采取什么方法?我是否应该考虑使用其他编程语言,例如C?
我可以访问大学的HPC,并且以前我曾经在较小的数据集上成功运行过该脚本。问题在于,这次我的数据集更大(2.6TB),每个样本也更大(1.3GB)。我设法尝试使用256GB RAM(我可以要求的最大数量)运行此脚本,但是失败了。
此脚本使用Numpy和SciPy查找我的数据集的协方差和本征函数。
def analysis(meanX, meanY, result):
# Finding the fluctuation of the data
fluX = []
fluY = []
for i in result:
df = pd.read_csv(i)
Vx = df['Vx'].values - meanX
fluX = np.append(fluX, Vx)
Vy = df['Vy '].values - meanY
fluY = np.append(fluY, Vy)
flu = []
flu = np.append(fluX, fluY)
n_snapshots = len(result)
n_data = len(Vx)
flu = np.reshape(flu, (n_snapshots, n_data*2))
cov = np.cov(flu.T)
eigenvalue, eigenvector = scipy_eigenvalue(cov)
return eigenvalue, eigenvector
def scipy_eigenvalue(cov):
eigenvalue, eigenvector = eigsh(cov, k=10)
sum = np.sum(eigenvalue)
return eigenvalue, eigenvector
但是该脚本占用了过多的RAM,我希望能听到有关如何减少RAM需求的想法。