如何将形状为(20137,1,6912)的Numpy数组转换为DataFrame?
解决方法
报错原因很明确:Pandas DataFrame只接受2维输入,但你的Numpy数组是3维的(形状(20137, 1, 6912)里多了一个长度为1的中间维度),只要把这个多余的维度去掉,转成2维数组就能正常转换了。下面是几种简单的实现方式:
方法1:用numpy的
squeeze()方法自动去除长度为1的维度import pandas as pd import numpy as np # 假设原数组名为arr arr = np.random.rand(20137, 1, 6912) # 去除所有长度为1的维度,得到形状(20137, 6912)的2维数组 arr_2d = arr.squeeze() # 转换为DataFrame df = pd.DataFrame(arr_2d)方法2:通过索引切片直接剔除多余维度
这种方式更直观,明确选取中间维度的第0个元素:arr_2d = arr[:, 0, :] # 切片后形状变为(20137, 6912) df = pd.DataFrame(arr_2d)方法3:用
reshape()手动重塑数组形状
如果你明确知道目标维度的长度,直接指定即可:arr_2d = arr.reshape(20137, 6912) df = pd.DataFrame(arr_2d)
内容的提问来源于stack exchange,提问作者Anim
相关产品推荐
相关产品推荐

