如何重塑(1,181,12)三维数组为二维以转换为pd.DataFrame
问题根因
pd.DataFrame仅支持二维结构输入,你当前的数组是形状为(1, 181, 12)的三维数组,之前写的np.reshape(array_, (-1, 181, 12))没有改变维度数量,-1自动推导的结果还是1,重塑后数组形状和原数组完全一致,自然无法满足转换要求。
正确操作步骤
你只需要把最外层长度为1的冗余维度去掉,把数组转为二维即可,两种常用实现方式:
- 方式1:用
np.squeeze直接移除所有长度为1的维度
# 处理后数组形状为(181, 12),符合二维输入要求 new_arr = array_.squeeze()
- 方式2:用
reshape明确指定二维形状,可控性更高,不会误删其他维度
# 直接指定目标形状为181行、12列 new_arr = array_.reshape(181, 12) # 不想硬编码维度值的写法 new_arr = array_.reshape(array_.shape[1], array_.shape[2])
形状调整完成后,直接调用pandas接口转换即可:
import pandas as pd df = pd.DataFrame(new_arr)
如果需要给12列设置自定义列名,直接给pd.DataFrame传入
columns参数,传入长度为12的列名列表即可。
内容的提问来源于stack exchange,提问作者AlwaysJunior
相关产品推荐
相关产品推荐

