如何在Python中将(53,30000,12)的3D numpy数组保存为53个CSV文件?
解决3D NumPy数组保存为多个CSV文件的问题
你遇到的报错是因为pandas.DataFrame和numpy.savetxt都仅支持1D或2D数组输入,而你的x_unreal是3D数组(维度(53, 30000, 12)),直接传入会触发维度不匹配的错误。
方法1:使用Pandas循环保存
遍历3D数组的第一个维度(共53个元素),每个元素是一个(30000,12)的2D数组,将其转为DataFrame后保存为单独的CSV文件:
import pandas as pd import numpy as np # 遍历每个子数组 for idx in range(x_unreal.shape[0]): # 提取第idx个2D子数组 sub_data = x_unreal[idx] # 转为DataFrame df = pd.DataFrame(sub_data) # 保存为CSV,文件名按序号区分 df.to_csv(f'x_unreal_{idx}.csv', index=False)
方法2:使用NumPy savetxt循环保存
直接用NumPy的savetxt处理每个2D子数组,无需转换为DataFrame:
import numpy as np for idx in range(x_unreal.shape[0]): sub_data = x_unreal[idx] # 保存为CSV,指定分隔符为逗号 np.savetxt(f'x_unreal_{idx}.csv', sub_data, delimiter=',')
说明
两种方法都会生成53个CSV文件,每个文件包含30000行、12列数据,对应原3D数组中的每一个2D切片。你可以根据需求调整文件名的命名规则(比如替换x_unreal_{idx}为你需要的格式)。
内容的提问来源于stack exchange,提问作者Vikram R S
相关产品推荐
相关产品推荐

