Correction!
sources, targets = data.nonzero()
weights = data[sources, targets]
weights = array(weights)[0] #Need to convert Scipy's matrix format into a
form appropriate for igraph
g = Graph(zip(sources, targets), directed=True, edge_attrs={'weight':
weights})
On Wed, Jul 3, 2013 at 12:35 PM, Alacast <[email protected]> wrote:
> Thanks!
>
> For future users, it looks like this:
>
> sources, targets = data.nonzero()
> weights = data[sources, targets]
> g = Graph(zip(sources, targets), directed=True, edge_attrs={'weight':
> weights})
>
>
> On Wed, Jul 3, 2013 at 11:51 AM, Tamás Nepusz <[email protected]> wrote:
>
>> > data.toarray() converts the sparse matrix to dense/full format, which
>> blows my memory out of the water. What ought I to be doing?
>> Use the nonzero() method of your sparse matrix to extract the row/column
>> indices of the nonzero elements of your matrix, then construct the graph
>> using the standard Graph() constructor which accepts an edge list. If you
>> want to keep the weights as well, there should be a way in SciPy to extract
>> the values of the nonzero elements in the same order (probably
>> A[A.nonzero()] will do the trick) and then you can assign that vector to
>> the "weight" attribute of your graph.
>>
>> --
>> T.
>> _______________________________________________
>> igraph-help mailing list
>> [email protected]
>> https://lists.nongnu.org/mailman/listinfo/igraph-help
>>
>
>
_______________________________________________
igraph-help mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/igraph-help