以下技巧适用于任何将零映射到零的操作,并且仅适用于这些操作,因为它只涉及非零元素。也就是说,它将适用于sin
and sqrt
但不是为了cos
.
Let X
是一些企业社会责任矩阵...
>>> from scipy.sparse import csr_matrix
>>> X = csr_matrix(np.arange(10).reshape(2, 5), dtype=np.float)
>>> X.A
array([[ 0., 1., 2., 3., 4.],
[ 5., 6., 7., 8., 9.]])
非零元素的值为X.data
:
>>> X.data
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9.])
您可以就地更新:
>>> X.data[:] = np.sqrt(X.data)
>>> X.A
array([[ 0. , 1. , 1.41421356, 1.73205081, 2. ],
[ 2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ]])
Update在 SciPy 的最新版本中,您可以执行以下操作X.sqrt()
where X
是一个稀疏矩阵,用于获取新副本,其中元素的平方根X
.