如何在PyTorch中遍历KarateClub数据集并查看表格形式数据?
查看PyTorch Geometric中KarateClub数据集的具体数据
KarateClub是单图数据集,你之前的循环其实只遍历了唯一的一个图对象,而Data类默认的打印输出只会显示张量形状,不会展示具体数值。要以表格形式查看数据,你可以手动提取Data对象中的张量,转换为可阅读的表格格式,以下是具体实现:
代码示例
from torch_geometric.datasets import KarateClub import pandas as pd # 加载数据集并获取唯一的图数据对象 dataset = KarateClub() data = dataset[0] # 1. 节点特征表(34个节点,每个节点34维特征) node_features = pd.DataFrame( data.x.numpy(), columns=[f"特征_{idx}" for idx in range(data.num_features)] ) print("=== 节点特征表 ===") print(node_features) # 2. 边索引表(156条边,每条边包含源节点和目标节点索引) edges = pd.DataFrame( data.edge_index.numpy().T, # 转置后每行代表一条边 columns=["源节点ID", "目标节点ID"] ) print("\n=== 边索引表 ===") print(edges) # 3. 节点标签与训练掩码表 node_labels_mask = pd.DataFrame({ "节点标签": data.y.numpy(), "是否为训练节点": data.train_mask.numpy() }) print("\n=== 节点标签与训练掩码表 ===") print(node_labels_mask)
关键说明
- KarateClub数据集仅包含一个图,因此
len(dataset) = 1,无需循环遍历,直接取dataset[0]即可获取完整图数据。 Data对象的x、edge_index、y、train_mask都是PyTorch张量,调用.numpy()方法可转换为NumPy数组,再用pandas封装为表格格式,方便查看。- 如果不需要完整表格,也可以直接打印张量的具体数值,比如
print(data.x)会输出所有节点特征的具体值。
内容的提问来源于stack exchange,提问作者Krishn Nand
相关产品推荐
相关产品推荐

