我在做什么:生成一系列长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方式吗?
答案 0 :(得分:1)
如果您事先知道r
和nnn
的长度,则可以执行以下操作:
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=',')