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

How to print a list of arrays transposed in a csv file

我有一个包含以下形式的数组(类型 = 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_)。 我试图将其作为包含列表的列表(在另一个 post 中回答)来处理,但它不起作用,而是创建一个空的 csv 文件。 我的尝试是这个:

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

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

试试这个:

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

您可以将列表转换为 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=",")