Python如何将2D数组转置后写入CSV得到目标行列格式
问题原因
你当前的输出不符合预期,核心是需要将原始3行4列的2D数组转置为4行3列结构后再写入文件:原始数组的列对应你预期输出的行,直接写入原数组自然会按原行顺序输出。
调整方案
分两种情况处理:
情况1:f.example返回的是numpy数组
直接调用numpy数组的内置转置属性.T即可,同时如果需要用空格作为分隔符,要在创建writer时指定delimiter参数:
import csv with open('example.csv', 'w', newline='') as csvfile: # delimiter指定为空格,对应你示例中的分隔格式 writer = csv.writer(csvfile, delimiter=' ') # 写入转置后的数组 writer.writerows(f.example.T)
情况2:f.example返回的是普通Python嵌套列表
用Python内置的zip(*可迭代对象)语法实现转置:
import csv with open('example.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile, delimiter=' ') writer.writerows(zip(*f.example))
注:代码中加
newline=''是Python写入CSV的标准规范,用于避免Windows系统下生成的文件出现多余空行。
内容的提问来源于stack exchange,提问作者Emotional Damage
相关产品推荐
相关产品推荐

