Skip to main content
 首页 » 编程设计

python之在python中将大矩阵转换为稀疏矩阵

2025年05月04日10arxive

我需要做以下事情

b = numpy.random.randn(50001,2) 
 
cof = numpy.corrcoef(b) 
 
c= b>=0.3  
 
return np.dot(c, np.ones([50001,1])) 

它给我一个段错误。

此外,如果我尝试使用稀疏矩阵,例如:

asp = scipy.sparse.csc_matrix(c) 

我得到一个段错误

如果矩阵大小很小,则转换有效。

有什么建议吗?

请您参考如下方法:

您是要计算 50001 维空间的两个样本或 2D 空间的 50001 个样本之间的相关性?

在您当前的情况下,您正在创建一个隐式的 50001 x 50001 协方差矩阵(这会导致段错误)。执行以下操作不会炸毁内存

b = numpy.random.randn(2,50001) 
cof = numpy.corrcoef(b) 

希望这就是您所需要的(另一种方法会产生非常差的协方差矩阵近似值和段错误)。