1

私がやっていること: 一連の長い 1D 配列を生成しています。

やりたいこと: 追加/連結/vstack/? これらを 2D 配列に変換し、行を列として 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の方法はありますか?

4

2 に答える 2

1

randの長さが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、配列への変換と転置が節約されます。

于 2012-08-02T12:56:02.880 に答える
0
rarr = np.concatenate([get_array(r) for r in xrange(nnn)])
np.savetxt('test.cvs', rarr.T, delimiter=',')
于 2012-08-02T13:14:03.153 に答える