2017-06-05 17 views
0

CSVでエクスポートするテーブルを作成しようとしています。私は別の数値(小数点)を付けなければなりません。また、指標欄も付けたいと思います。これは空のスペース '_'と 'X'によって形成され、データの後処理に役立ちます。 下のコードでわかるように、数値だけを追加する間は小数点が表示されますが、文字列を追加すると小数点の値が消えます。numpy.hstackは文字列と数字で小数点以下を削除します

インジケータ列にも数値を使用しますが、この動作を理解したいと思います。小数点の削除を避けるために文字列と数値を付けることは可能ですか?

>>> c = np.hstack((b,error_perc_notabs_array,error_array)) 
>>> c 
array([[ 3.63200000e-01, 6.52800000e-01, 4.70400000e-01, 
      2.13117665e-02, 2.52124411e-02, 1.83029153e+01, 
      3.90067457e-03], 
     [ 4.16000000e-01, 7.82400000e-01, 4.48000000e-01, 
      2.25692703e-02, 4.35769819e-02, 9.30810405e+01, 
      2.10077116e-02]]) 
>>> z 
[array([' '], 
     dtype='|S1'), array(['X'], 
     dtype='|S1')] 
>>> shape(z) 
(2L, 1L) 
>>> d = np.hstack((z,c)) 
>>> d 
array([[' ', '0', '0', '0', '0', '0', '1', '0'], 
     ['X', '0', '0', '0', '0', '0', '9', '0']], 
     dtype='|S1') 

答えて

0

numpyの共通データ型OS S1floatであることを、私のテストを示し、あなたのケースS1には、これにもかかわらず長さ1

の文字列である一般的なデータ型にすべての要素を変換S32

>>> z = array([['X'],[' ']], dtype='S1') 
>>> d = numpy.hstack((z,c)) 
>>> d 
array([[b'X', b'0.3632', b'0.6528', b'0.4704', b'0.0213117665', 
     b'0.0252124411', b'18.3029153', b'0.00390067457'], 
     [b' ', b'0.416', b'0.7824', b'0.448', b'0.0225692703', 
     b'0.0435769819', b'93.0810405', b'0.0210077116']], 
     dtype='|S32') 
+0

回答ありがとうございました!どのバージョンのPythonを使用していますか?私はPython 2.7.6.4をWinPythonで使用しています。あなたはこれに依存していると思いますか? – federico

関連する問題