2017-02-02 21 views
1
import numpy as np 
row_num=24983 
col_size = 102 
arr = np.zeros((row_num,col_num)) 
arr[:,0]= np.arange(row_num) 

私はそれを書くとき、それはのように私に科学表記の配列を与える、numpyのブロック科学表記

array([[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00], 
     [ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00], 
     [ 2.00000000e+00, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00], 
     ..., 
     [ 2.49800000e+04, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00], 
     [ 2.49810000e+04, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00], 
     [ 2.49820000e+04, 0.00000000e+00, 0.00000000e+00, ..., 
      0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]) 

が、私はそれを望んでいません。私はnp.set_printoptionsを知っているが、私はcsvファイルに配列を書こうと思いますし、私はそれを行うとき、それはまだファイルに科学的表記法で書く:私は、通常のnumpyの配列のような、

array([[ 0., 0., 0., ..., 0., 0., 0.], 
     [ 1., 0., 0., ..., 0., 0., 0.], 
     [ 2., 0., 0., ..., 0., 0., 0.], 
     ..., 
     [ 24980., 0., 0., ..., 0., 0., 0.], 
     [ 24981., 0., 0., ..., 0., 0., 0.], 
     [ 24982., 0., 0., ..., 0., 0., 0.]]) 

編集を望みますよ。私は何をすべきか?

答えて

1

配列の表示方法を制御するには、フロートの書式設定機能を設定するためにnp.set_printoptionsを使用することができます。

In [13]: np.set_printoptions(formatter={'float': '{:g}'.format}) 

In [14]: arr 
Out[14]: 
array([[0, 0, 0, ..., 0, 0, 0], 
     [1, 0, 0, ..., 0, 0, 0], 
     [2, 0, 0, ..., 0, 0, 0], 
     ..., 
     [24980, 0, 0, ..., 0, 0, 0], 
     [24981, 0, 0, ..., 0, 0, 0], 
     [24982, 0, 0, ..., 0, 0, 0]]) 

g形式の意味はdescribed hereです。 gフォーマットは一般に単純な浮動小数点を指数表記なしで人間が判読可能な形で提示するのに成功しますが、指数表記が決して使用されないことを保証するものではありません。

したがって、代わりにf形式、 などを使用できます。 np.set_printoptions(formatter={'float': '{:.2f}'.format}) をすべて表示する場合は、すべての浮動小数点精度が固定されています。これにより、指数表記を使用しないことが保証されます。また


、あなたは指数表記を使用して、小さな浮動小数点値の印刷を抑制するためにnp.set_printoptionsを伝え

In [25]: np.set_printoptions(suppress=True) 

In [26]: arr 
Out[26]: 
array([[  0.,  0.,  0., ...,  0.,  0.,  0.], 
     [  1.,  0.,  0., ...,  0.,  0.,  0.], 
     [  2.,  0.,  0., ...,  0.,  0.,  0.], 
     ..., 
     [ 24980.,  0.,  0., ...,  0.,  0.,  0.], 
     [ 24981.,  0.,  0., ...,  0.,  0.,  0.], 
     [ 24982.,  0.,  0., ...,  0.,  0.,  0.]]) 

suppress=Trueを使用することができます。

np.savetxt(filename, arr, fmt='%g') 

The fmt parameter CSVファイルの使用を作成するには


あなたがprintf-style string formattingを使用して浮動小数点形式を制御することができます。

+0

おかげで、それは、端末に取り組んでいますが、これに加えて、私はcsvファイルに配列を書こうと思いますし、私はそれを行うとき、それはまだ科学表記 –

+0

使用 'np.savetxt(ファイル名、編曲、FMT =を書きます'%g') 'を押してCSVを作成します。 'fmt'パラメータは浮動体フォーマットを制御することを可能にします。 – unutbu

+0

ありがとう!出来た。質問してもいいですか?私の英語は悪いので、どのリンクがあなたから与えられたのか分かりません。 \tは、形式gまたはGまたはbなどが理解できると説明できますか? –