如何将数组列表中的每个数组保存为CSV文件的单行?
将NumPy数组列表的每个数组作为一行保存到CSV文件的解决方法
问题分析
你使用np.savetxt时设置了错误的分隔符"]",且未确保输入为二维NumPy数组,导致每个元素被单独写入一行。CSV文件的标准分隔符为逗号(或制表符等),且np.savetxt要求输入为二维数组才能按行写入子数组。
解决方案
方法1:使用NumPy原生方法
先将数组列表转换为二维NumPy数组,再用正确的分隔符保存:
import numpy as np # 将数组列表转换为二维NumPy数组(形状为3880×257) array_2d = np.array(Array1) # 保存到CSV,每个子数组对应一行,元素用逗号分隔 np.savetxt("data8.csv", array_2d, delimiter=",", fmt="%.8e")
np.array(Array1):将原列表转换为二维数组,确保np.savetxt识别每行对应一个子数组。delimiter=",":设置CSV的列分隔符,符合CSV规范。fmt="%.8e":保持元素的科学计数法格式(与你提供的示例格式一致),可根据需求改为"%f"等其他格式。
方法2:使用Pandas(更简洁)
如果已安装Pandas,可直接将数组列表转为DataFrame保存:
import pandas as pd # 将数组列表转为DataFrame,每个子数组自动作为一行 df = pd.DataFrame(Array1) # 保存CSV,不包含行索引和列名 df.to_csv("data8.csv", index=False, header=False)
错误原因说明
你之前的代码中delimiter="]"是错误的:np.savetxt会用该字符分割每个元素,加上若原Array1未转为二维数组,会导致每个元素被单独解析为一行,最终出现你看到的错误结果。
内容的提问来源于stack exchange,提问作者dengilewi
相关产品推荐
相关产品推荐

