あなたのmatrix
がどこに由来しているのかわからず、なぜマトリックスと数字が混在しているのかわかりませんが、私はそれを処理しようとします。
コピーアンドペーストを容易にするため、matrix
を定義します(numpyをnp
としてロードしました)。私はIpythonセッションで働いている:
In [373]: matrix=np.matrix
In [375]: alist=[matrix([[ 1421]]), 7, matrix([[ 1184]]), 3, matrix([[ 925]]), 2, matrix([[ 1077]]), 4]
In [376]: alist
Out[376]:
[matrix([[1421]]),
7,
matrix([[1184]]),
3,
matrix([[925]]),
2,
matrix([[1077]]),
4]
私は行列から要素を抽出ifelse
式でリストの内包を通してそれを実行します。スチュアートがしたように私はまた、単純なヘルパー関数を定義することも可能です。
In [379]: newlist=[x[0,0] if isinstance(x,np.matrix) else x for x in alist]
In [380]: newlist
Out[380]: [1421, 7, 1184, 3, 925, 2, 1077, 4]
は現在、配列にそれを回す - それ2行にするためにリシェイプを使用しています。
In [381]: Marray=np.array(newlist).reshape(2,-1)
In [382]: Marray
Out[382]:
array([[1421, 7, 1184, 3],
[ 925, 2, 1077, 4]])
np.savetxt
csv
スタイルファイル書き込みにnumpy
機能です:
In [386]: np.savetxt('test.txt',Marray)
In [387]: cat test.txt
1.421000000000000000e+03 7.000000000000000000e+00 1.184000000000000000e+03 3.000000000000000000e+00
9.250000000000000000e+02 2.000000000000000000e+00 1.077000000000000000e+03 4.000000000000000000e+00
おっとを、デフォルトのフォーマットは、フロートです。整数にそれを変更:
In [388]: np.savetxt('test.txt',Marray, '%d')
と(ちょうどLinuxのシェルでcat
をしているような)結果のファイルを見て
In [389]: cat test.txt
1421 7 1184 3
925 2 1077 4
とヘッダ行を持つ:
In [392]: np.savetxt('test.txt',Marray, '%d',header='MSEa Ca MSEb Cb')
In [393]: cat test.txt
# MSEa Ca MSEb Cb
1421 7 1184 3
925 2 1077 4
フォーマットすることができます洗練されているが、それはアイデアを与える。
リストには大括弧 '[]'が付いています。これはリストの内容です。私はあなたが行列が必要であることを完全には確信していませんが、私はあなたの問題空間に慣れていません –
おそらくミックス配列と行列は異なるセマンティクスを持っているので使いません。 – karakfa