简体   繁体   中英

Scipy sparse matrix to the power spare matrix

I have a scipy.sparse.csc.csc_matrix. I want to use a power function on each element of this matrix such that each element is raise to the power itself. How should I do that?

I tried this:

B.data ** B.data

But this removes 0 from the data

I have no problems with that approach:

In [155]: B=sparse.random(10,10,.1,'csc')
In [156]: B
Out[156]: 
<10x10 sparse matrix of type '<class 'numpy.float64'>'
    with 10 stored elements in Compressed Sparse Column format>
In [157]: B.data
Out[157]: 
array([ 0.79437782,  0.74414493,  0.3922551 ,  0.61980213,  0.45231045,
        0.94498933,  0.53086532,  0.54611246,  0.52941419,  0.81069106])
In [158]: B.data=B.data**B.data
In [159]: B.data
Out[159]: 
array([ 0.83288253,  0.80259158,  0.69274789,  0.74342645,  0.69847422,
        0.94793528,  0.71450246,  0.71866496,  0.71412372,  0.84354814])
In [160]: B
Out[160]: 
<10x10 sparse matrix of type '<class 'numpy.float64'>'
    with 10 stored elements in Compressed Sparse Column format>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM