Python-矩阵性能慢

Python-矩阵性能慢,python,numpy,matrix,linear-algebra,Python,Numpy,Matrix,Linear Algebra,我试图对一个2^N*2^N的复矩阵执行一些精确的对角化,其中N等于16。 我使用numpy.linalg.eigh并使用特征向量矩阵执行标量积来创建新的2^N*2^N矩阵。 这个新矩阵应该是64gb((2^2N)*16),但使用htop我可以确定python消耗261gb。主要问题是,创建此矩阵需要很长的时间,与对N=14,12执行相同计算所需的时间不成比例(其中应缩放为dim^2) 有人遇到过这样的问题吗 提前谢谢 我从N=5开始,做矩阵对角化。测量计算时间并慢慢增加N。因为对角化有立方(!)

我试图对一个2^N*2^N的复矩阵执行一些精确的对角化,其中N等于16。 我使用numpy.linalg.eigh并使用特征向量矩阵执行标量积来创建新的2^N*2^N矩阵。 这个新矩阵应该是64gb((2^2N)*16),但使用htop我可以确定python消耗261gb。主要问题是,创建此矩阵需要很长的时间,与对N=14,12执行相同计算所需的时间不成比例(其中应缩放为dim^2)

有人遇到过这样的问题吗


提前谢谢

我从N=5开始,做矩阵对角化。测量计算时间并慢慢增加N。因为对角化有立方(!)复杂度O(N^3),我想它在计算上是不可行的。(这样你就不用担心记忆力了……)谢谢你的回复。对角化确实是立方的,但问题不在于此,而在于使用标量积构造一个新的矩阵(这应该是二次缩放的)。请您展示一下您的代码好吗?当
numpy
操作开始陷入困境时,我通常认为它进行了过多的内存交换。但是我使用的是一台内存有限的旧计算机,我从N=5开始,然后进行矩阵对角化。测量计算时间并慢慢增加N。因为对角化有立方(!)复杂度O(N^3),我想它在计算上是不可行的。(这样你就不用担心记忆力了……)谢谢你的回复。对角化确实是立方的,但问题不在于此,而在于使用标量积构造一个新的矩阵(这应该是二次缩放的)。请您展示一下您的代码好吗?当
numpy
操作开始陷入困境时,我通常认为它进行了过多的内存交换。但是我使用的是一台内存有限的旧电脑。