Thank you so much, Tamas. By using Read_Edgelist the expected ids were
returned.
Happy Easter, btw,
Bye,
S.

2015-04-05 21:59 GMT+02:00 Tamas Nepusz <[email protected]>:

> Hi,
>
> I'm pretty sure that the identifiers that you use in your graph are stored
> in
> the "name" vertex attribute and the integer IDs in igraph are assigned
> arbitrarily (since both Graph.Read_Ncol and Graph.TupleList accepts
> arbitrary
> names as vertex identifiers, not only integers). Since the vertex IDs in
> your
> file seem to be integers from zero to |V|-1, use Graph.Read_Edgelist --
> this
> will use the integer IDs from your file as is, and the edge lookups by ID
> will
> behave as expected.
>
> T.
>
> On 04/05, Stefano Scerra wrote:
> > (Sorry for accidentally double posting)
> > Hello,
> > I'm having a really strange problem with the library and I was hoping to
> > get some advice.
> >
> > After loading a large 19 million edges graph, the library returns an
> > inconsistent edge list.
> > More precisely, nonexistent edges appear in the graph's edge sequence.
> >
> > I try to load the graph in two different ways, by using Graph.Read_Ncol,
> > and by manually reading the edgelist and then using Graph.TupleList. In
> > both cases, iterating on the graph's edge sequence (the es attribute)
> > yields inconsistent results: for instance, the nonexisting edge 10->11 is
> > returned.
> >
> > I'm using igraph 0.7.1-4 on Python 3.4.3 64 bit on Windows 7 SP1 64 bit
> > Link to the graph:
> >
> https://drive.google.com/file/d/0B0afrBfsijreOS1BZkVfdE10TlE/view?usp=sharing
> >
> > Here's the code:
> >
> > from igraph import Graph
> > import csv
> > import timeit
> >
> > def create_graph(file_graph):
> >     # load graph using Graph.Read_Ncol
> >     with open(file_graph, "r") as in_file:
> >         g = Graph.Read_Ncol(in_file, weights=False, directed=True)
> >         return g
> >
> > def create_graph2(file_graph):
> >     # load graph using Graph.TupleList
> >     edges = []
> >     with open(file_graph, "r") as in_file:
> >         reader = csv.reader(in_file, delimiter=" ")
> >         i = 0
> >         for row in reader:
> >             if row:
> >                 edges.append([int(row[0]), int(row[1])])
> >                 i += 1
> >                 if i % 100000 == 0: print(i)
> >     return Graph.TupleList(edges=edges, directed=True)
> >
> >
> > def generate_weighted_graph(input, output):
> >     g = create_graph2(input)
> >     print("ecount:", g.ecount(), "vcount:", g.vcount())
> >     with open(output, "w") as output_file:
> >         writer = csv.writer(output_file, delimiter=" ")
> >         for e in g.es:
> >             i, j = e.source, e.target
> >             writer.writerow([i, j])
> >
> > if __name__ == "__main__":
> >     generate_weighted_graph("C:/datasets/network",
> > "C:/datasets/network_weighted")
> >
> >
> > Could this possibly be a bug?
> > Any help would be appreciated, thank you!
> > Stefano
>
> > _______________________________________________
> > igraph-help mailing list
> > [email protected]
> > https://lists.nongnu.org/mailman/listinfo/igraph-help
>
>
> --
> 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

Reply via email to