scipyのダウンロードでのバイナリ行列に小数点行列に変換

StackOverflow https://stackoverflow.com/questions/1524023

  •  19-09-2019
  •  | 
  •  

質問

私は誰電子メールで送信し、何回している人を表す整数行列があるとします。ソーシャルネットワーク分析のために私は、単純な無向グラフを作成したいと思います。だから私は、バイナリ行列に、後にタプルのリストに行列を変換する必要があります。

私の質問:バイナリ行列に小数行列を軽減するための高速、便利な方法があります。

このようなこと:

26, 3, 0
3, 195, 1
0, 1, 17

になります:

1, 1, 0
1, 1, 1
0, 1, 1
役に立ちましたか?

解決

行列内のすべてのセルにscipy.sign機能を適用します。

[EDIT] Cudosに speciousfool

xがあなたの行列である場合は、

そしてscipy.sign(x)はあなたのバイナリ行列を与えるます。

他のヒント

あなたは次のことを行うことができます:

>>> import scipy
>>> a = scipy.array((12, 0, -1, 23, 0))
array([12,  0, -1, 23,  0])
>>> (a != 0).astype(int)
array([1, 0, 1, 1, 0])

マジックはa != 0の一部です。あなたは配列にブール式を適用することができ、それがブール値の配列を返します。そして、それはint型に変換されます。

また、これを試すことができます:

>>>x,y = scipy.where(yourMatrix>0)
>>>yourMatrix[:,:] = 0
>>>yourMatrix[x,y] = 1

私はこれも速くなりますと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top