如何用最少代码将pandas DataFrame转为带填充的PyTorch 3D张量
最简实现代码
首先确保你已经安装导入pandas和torch依赖,核心转换代码仅2行:
# 生成三个维度的全组合索引,缺失位置自动填0后转张量 full_idx = pd.MultiIndex.from_product([sorted(dfAnimals[c].unique()) for c in ['Animal','Country','Likes']]) tensor = torch.tensor(dfAnimals.set_index(['Animal','Country','Likes']).reindex(full_idx, fill_value=0).values.reshape(2,2,2))
验证输出
执行以下代码可确认形状符合要求:
print(tensor.shape) # 输出:torch.Size([2, 2, 2])
逻辑说明
- 用
MultiIndex.from_product生成三个维度所有可能的组合,确保没有遗漏位置 reindex方法自动将不存在的组合位置填充为0,不需要手动处理缺失值- 直接对填充后的数组做reshape得到要求的3D形状,再转PyTorch张量即可
内容的提问来源于stack exchange,提问作者Maja
相关产品推荐
相关产品推荐

