Python / numpy附加数组,转置并保存为csv

时间:2012-08-02 12:17:52

标签: python arrays list numpy transpose

我在做什么:生成一系列长1D数组。

我想做什么: 追加/ concatentate / vstack /?将这些行保存为二维数组,然后将这些行保存为csv文件中的列。

以下作品,但不优雅:

rlist=[]                        # create empty list
for i in range(nnn)             # nnn is typically 2000
    (calculate an array "r")
    rlist.append(r)             # append f.p. array to rlist
rarr = array(rlist)             # turn it back into array so I can transpose
numpy.savetxt('test.csv',rarr.T,delimiter=',')  # save rows as columns in csv file

有更优雅或pythonesque方式吗?

2 个答案:

答案 0 :(得分:1)

如果您事先知道rnnn的长度,则可以执行以下操作:

rarr = np.zeros((r_len, nnn)) # r_len rows, nnn columns
for i in range(nnn):
    rarr[:,i] = r_calc()
numpy.savetxt('test.csv', rarr, delimiter=',')

这会将数据向量直接放入rarr行,从而节省转换为数组和转置。

答案 1 :(得分:0)

rarr = np.concatenate([get_array(r) for r in xrange(nnn)])
np.savetxt('test.cvs', rarr.T, delimiter=',')