easygraph.convert module#
- easygraph.convert.dict_to_hypergraph(data, max_order=None, is_dynamic=False)[source]#
A function to read a file in a standardized JSON format.
- Parameters:
data (dict) – A dictionary in the hypergraph JSON format
max_order (int, optional) – Maximum order of edges to add to the hypergraph
- Returns:
The loaded hypergraph
- Return type:
A Hypergraph object
- Raises:
EasyGraphError – If the JSON is not in a format that can be loaded.
See also
read_json
- easygraph.convert.from_edgelist(edgelist, create_using=None)[source]#
Returns a graph from a list of edges.
- Parameters:
edgelist (list or iterator) – Edge tuples
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
Examples
>>> edgelist = [(0, 1)] # single edge (0,1) >>> G = eg.from_edgelist(edgelist)
or
>>> G = eg.Graph(edgelist) # use Graph constructor
- easygraph.convert.from_networkx(g: nx.Graph | nx.DiGraph) Graph | DiGraph[source]#
Convert a NetworkX graph to an EasyGraph graph.
- easygraph.convert.from_pyg(data: torch_geometric.data.Data, node_attrs: Iterable[str] | None = None, edge_attrs: Iterable[str] | None = None, graph_attrs: Iterable[str] | None = None, to_undirected: bool | str | None = False, remove_self_loops: bool = False) Any[source]#
Converts a
torch_geometric.data.Datainstance to aeasygraph.Graphifto_undirectedis set toTrue, or a directedeasygraph.DiGraphotherwise.- Parameters:
data (torch_geometric.data.Data) – The data object.
node_attrs (iterable of str, optional) – The node attributes to be copied. (default:
None)edge_attrs (iterable of str, optional) – The edge attributes to be copied. (default:
None)graph_attrs (iterable of str, optional) – The graph attributes to be copied. (default:
None)to_undirected (bool or str, optional) – If set to
Trueor “upper”, will return aeasygraph.Graphinstead of aeasygraph.DiGraph. The undirected graph will correspond to the upper triangle of the corresponding adjacency matrix. Similarly, if set to “lower”, the undirected graph will correspond to the lower triangle of the adjacency matrix. (default:False)remove_self_loops (bool, optional) – If set to
True, will not include self loops in the resulting graph. (default:False)
Examples
>>> import torch_geometric as pyg
>>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> from_pyg(data) <easygraph.classes.digraph.DiGraph at 0x2713fdb40d0>
- easygraph.convert.to_easygraph_graph(data, create_using=None, multigraph_input=False)[source]#
Make a EasyGraph graph from a known data structure.
The preferred way to call this is automatically from the class constructor
>>> d = {0: {1: {"weight": 1}}} # dict-of-dicts single edge (0,1) >>> G = eg.Graph(d)
instead of the equivalent
>>> G = eg.from_dict_of_dicts(d)
- Parameters:
data (object to be converted) –
- Current known types are:
any EasyGraph graph dict-of-dicts dict-of-lists container (e.g. set, list, tuple) of edges iterator (e.g. itertools.chain) that produces edges generator of edges Pandas DataFrame (row per edge) numpy matrix numpy ndarray scipy sparse matrix pygraphviz agraph
create_using (EasyGraph graph constructor, optional (default=eg.Graph)) – Graph type to create. If graph instance, then cleared before populated.
multigraph_input (bool (default False)) – If True and data is a dict_of_dicts, try to create a multigraph assuming dict_of_dict_of_lists. If data and create_using are both multigraphs then create a multigraph from a multigraph.
- easygraph.convert.to_networkx(g: Graph | DiGraph) nx.Graph | nx.DiGraph[source]#
Convert an EasyGraph to a NetworkX graph.
- easygraph.convert.to_pyg(G: Any, group_node_attrs: List[str] | all | None = None, group_edge_attrs: List[str] | all | None = None) torch_geometric.data.Data[source]#
Converts a
easygraph.Graphoreasygraph.DiGraphto atorch_geometric.data.Datainstance.- Parameters:
G (easygraph.Graph or easygraph.DiGraph) – A easygraph graph.
group_node_attrs (List[str] or all, optional) – The node attributes to be concatenated and added to
data.x. (default:None)group_edge_attrs (List[str] or all, optional) – The edge attributes to be concatenated and added to
data.edge_attr. (default:None)
Note
All
group_node_attrsandgroup_edge_attrsvalues must be numeric.Examples
>>> import torch_geometric as pyg
>>> pyg_to_networkx = pyg.utils.convert.to_networkx # type: ignore >>> networkx_to_pyg = pyg.utils.convert.from_networkx # type: ignore >>> Data = pyg.data.Data # type: ignore >>> edge_index = torch.tensor([ ... [0, 1, 1, 2, 2, 3], ... [1, 0, 2, 1, 3, 2], ... ]) >>> data = Data(edge_index=edge_index, num_nodes=4) >>> g = pyg_to_networkx(data) >>> # A `Data` object is returned >>> to_pyg(g) Data(edge_index=[2, 6], num_nodes=4)