Ich habe eine Adjazenzmatrix eines Graphen A
. Nach A = A.sign()
gibt es noch einige Elemente, die nicht 1 oder 0 oder -1 sind.Ist Scipys Zeichen() nicht garantiert funktionsfähig?
In [35]: A = A.sign()
In [36]: A.getcol(0).data
Out[36]:
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,
1., 1., 1., 1., 2.])
In [37]: A
Out[37]:
<519403x519403 sparse matrix of type '<type 'numpy.float64'>'
with 3819116 stored elements in COOrdinate format>
Auf der anderen Seite funktioniert numpy.sign()
funktioniert gut.
In [50]: a = A.getcol(0)
In [51]: np.sum(a.todense())
Out[51]: 58.0
In [52]: np.sum(np.sign(a.todense()))
Out[52]: 57.0
Was war der ursprüngliche Wert? –
@OliverCharlesworth Der ursprüngliche Wert ist zu lang, deshalb verwende ich eine dünne Matrix, aber 'A.getcol (0) .data' ist das gleiche wie nach' A.sign() ' – Yfiua
Kannst du herausfinden, welche Werte in Ihre ursprüngliche 'A'-Matrix hat ein" Zeichen "von 2 (zB' A.data [A.sign(). data == 2] ')? –