在标题中,我需要numpy.exp在一个非常大的ndarray上执行,比方说ar,并将结果存储在ar自身中.这项操作可以就地进行吗?
首先,我不是数学家.我承认.然而,我仍然需要理解ScyPy的稀疏矩阵是如何算术运算的,以便在我必须处理的应用程序中从密集的NumPy矩阵切换到SciPy稀疏矩阵.问题是内存使用情况.大密集矩阵将消耗大量内存.
有争议的公式部分是将矩阵添加到标量的位置.
A = V + x
Run Code Online (Sandbox Code Playgroud)
其中V是一个方阵(它的大,比如60,000 x 60,000)并且人口稀少.x是一个浮点数.
使用NumPy的操作(如果我没有记错的话)将v添加到V中的每个字段.如果我完全偏离基数,请告诉我,并且x将仅添加到V中的非零值.
使用SciPy,并非所有稀疏矩阵都支持相同的功能,如标量添加.dok_matrix(Keys of Keys)支持标量添加,但看起来(实际上)它正在分配每个矩阵条目,有效地将我的稀疏dok_matrix渲染为具有更多开销的密集矩阵.(不好)
其他矩阵类型(CSR,CSC,LIL)不支持标量添加.
我可以尝试构建一个标量值为x的完整矩阵,然后将其添加到V.我对矩阵类型没有任何问题,因为它们似乎都支持矩阵加法.但是我不得不耗费大量的内存来构造x作为矩阵,并且添加的结果也可能最终成为完全填充的矩阵.
必须有另一种方法来做到这一点,不需要分配100%的稀疏矩阵.
我愿意接受需要大量内存,但我想我会首先寻求一些建议.谢谢.
如何获得稀疏复矩阵的逐元素绝对值?一般来说,是否可以使用用户定义的函数将一个矩阵映射到另一个矩阵?