Numpy数组转CSV格式异常:二维数组导出为单行多列问题
Numpy二维数组导出CSV变单行的问题解决
问题根源
你使用的adjusted_data.tofile()会将数组完全扁平化后写入文件,完全忽略原数组的二维结构,所以(22227,2)的数组会被转成1行44454列的内容,这就是问题的核心原因。
解决方案
方法1:用numpy自带的savetxt(推荐)
这是numpy专门为文本格式保存设计的函数,能够保留数组的二维结构:
# 替换原代码中的tofile行 np.savetxt('BL_Trial6.csv', adjusted_data, delimiter=',', fmt='%.8f')
delimiter=','指定列分隔符为逗号fmt='%.8f'控制输出的小数位数,和你打印的格式匹配,可根据需求调整
方法2:用pandas快速保存(如果允许使用)
如果项目中可以安装pandas,代码会更简洁:
import pandas as pd # 转成DataFrame后保存 pd.DataFrame(adjusted_data).to_csv('BL_Trial6.csv', index=False, header=False)
index=False不生成行索引列header=False不生成列名行,符合纯数据的导出需求
额外优化:替换低效循环
你原代码里的循环调整数据可以用numpy向量运算替代,处理大数据时速度会快很多:
# 替换原循环部分 adjusted_data = sample_data.copy() adjusted_data[:, 1] -= sample_data[:,1].mean()
直接对整列做减法运算,不需要逐行遍历处理。
内容的提问来源于stack exchange,提问作者Rebecca
相关产品推荐
相关产品推荐

