Nit*_*ked 1 memory performance numpy linear-algebra
我需要解决(在最小二乘意义上)大型(50,000)线性系统.每一个这样的"系统"是Ax=B,与A是N-通过-K矩阵,x作为一个K-1向量,和B(显然)是N×1向量.(在我的情况下,N是50,000,K是~10).
numpy.linalg.lstsq似乎是显而易见的选择,但由于文档中没有包含任何实现细节,我想知道内存和运行时性能:
lstsq的运行时性能和内存要求是什么?
该文档描述了结果为包括单数值和秩; 强烈暗示它正在使用SVD.
我的笔记本电脑上的快速测试表明,在分配了阵列A和B之后,内存根本没有上升(由系统监视器报告).
In [7]: A = np.random.randn(100000, 10)
In [8]: B = np.random.randn(100000)
In [9]: np.linalg.lstsq(A, B)
Out[9]:
(array([ 0.00240061, 0.0017896 , 0.00619928, 0.00010278, -0.00411501,
0.00028532, 0.0003893 , -0.00042893, 0.00178326, -0.00444068]),
array([ 99695.18278372]),
10,
array([ 318.37776275, 318.16578799, 317.82872616, 317.21981114,
316.80987468, 315.63798002, 315.46574698, 314.73120345,
313.99948001, 313.61503118]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1240 次 |
| 最近记录: |