如何打印在csv文件中转置的数组列表

时间:2015-05-11 17:41:22

标签: python python-2.7 csv transpose

我有一个包含数组的列表(type = numpy.ndarray),格式如下:

final = [[a, b, c, d],[e, f, g, h],[i, j, k, l]]

我希望以下列形式将它们打印在csv文件中:

a, e, i
b, f, j
c, g, k
d, h, l

其中a,b,c ... j,k,l都是字符串(numpy.string_)。 我试图将其作为包含列表的列表(在另一篇文章中回答)但是它不起作用,而是创建一个空的csv文件。 我的尝试就是这个:

csvfile=open('new.csv','wb')    
wr = csv.writer(csvfile)
final=map(list, zip(*final))
wr.writerows(final)
csvfile.close()

有人可以提供一些建议吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

with open('new.csv', 'wb') as f:
    wr = csv.writer(f)
    wr.writerows(map(list, zip(*final)))

答案 1 :(得分:0)

您可以将列表转换为numpy数组:final = np.array(final)然后以这种方式使用转置方法numpy.ndarray.T

final.T = [[a, e, i],[b, f, j],[c, g, k],[d,h,l]]

所以:

import numpy as np
np.savetxt("foo.csv", np.array(final).T, delimiter=",")