使用numpy.savetxt保存两数组为CSV文件遇问题求助
解决numpy.savetxt保存两列CSV的问题
嘿,这个问题我之前也踩过一模一样的坑!核心问题其实是一个不起眼的拼写错误,再加上可以优化下输出格式,就能完全符合你的需求啦。
问题根源
你写的命令里把分隔符参数写成了delimeter,但正确的参数名是delimiter(少了一个e)!这个拼写错误会让numpy直接忽略这个参数,用默认的输出格式,导致两列内容被混在一起,看起来像是挤在了同一列里。
正确的解决方案
首先确保你的数组A和B长度一致(B是np.arange(2000,5000),一共3000个元素,所以A也得是3000个元素),然后用下面的代码:
import numpy as np # 创建你的数组 B = np.arange(2000, 5000) # 模拟你的A数组(这里凑够3000个元素,和B长度匹配) A = np.array([0, 2, 1] + [0, 1, 2] * 999) # 正确保存CSV的代码 np.savetxt('output.csv', np.c_[B, A], delimiter=',', fmt='%d')
代码细节说明
np.c_[B, A]:这一步你是对的,它会把两个一维数组拼接成N行2列的二维数组,为保存两列数据打好基础。delimiter=',':正确指定逗号作为列分隔符,确保B和A的元素各占一列。fmt='%d':指定输出格式为整数,避免numpy默认用科学计数法输出整数,让CSV里的内容更直观易读。
运行这段代码后,你的output.csv里的内容就会是:
2000,0 2001,2 2002,1 2003,0 ... 4999,2
完全符合你想要的每行对应B元素和A元素的格式。
额外检查点
如果还是出现异常,先确认A和B的长度是否一致,执行下面的代码验证:
print(len(B), len(A))
只有长度相同,np.c_才能正确拼接成二维数组,否则会直接抛出错误哦。
内容的提问来源于stack exchange,提问作者Tommaso Bendinelli
相关产品推荐
相关产品推荐

