r.v*_*r.v 2 python scipy sparse-matrix
如何获得稀疏复矩阵的逐元素绝对值?一般来说,是否可以使用用户定义的函数将一个矩阵映射到另一个矩阵?
scipy 中的稀疏矩阵对象实现了该方法__abs__()。这意味着您可以使用Python的内置 abs()函数。它将调用该__abs__()方法。例如,
In [16]: from scipy.sparse import csr_matrix
In [17]: a = csr_matrix([[1+1j, 0, 0, 0], [0, -2, 0, 0], [0, 0, 0, 0], [3-4j, 0, -5j, 0]])
In [18]: a.A
Out[18]:
array([[ 1.+1.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, -2.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
[ 3.-4.j, 0.+0.j, 0.-5.j, 0.+0.j]])
In [19]: b = abs(a)
In [20]: b.A
Out[20]:
array([[ 1.41421356, 0. , 0. , 0. ],
[ 0. , 2. , 0. , 0. ],
[ 0. , 0. , 0. , 0. ],
[ 5. , 0. , 5. , 0. ]])
Run Code Online (Sandbox Code Playgroud)