2017-05-20 9 views
0

私は収益と経費の出力をドルで欲しいと思っています。私はintに印刷オプションを設定しましたが、小数点を受け取り、文書全体でドルをどのように表示するのかはわかりません。numpy set_printoptionsドル全体のフォーマット

revenue = [14574.49, 7606.46, 8611.41, 9175.41, 8058.65, 8105.44, 11496.28, 9766.09, 10305.32, 14379.96, 10713.97, 15433.50] 
expenses = [12051.82, 5695.07, 12319.20, 12089.72, 8658.57, 840.20, 3285.73, 5821.12, 6976.93, 16618.61, 10054.37, 3803.96] 

ここで私のコードは動作しますが、私はドル全体をフォーマットすることはできません。

import numpy as np 

np.set_printoptions(precision=0, formatter={'int_kind':':d'}) 
revenue_arr = np.array(revenue) 
expense_arr = np.array(expense) 

profits = revenue_arr - expense_arr 
print(profits) 

結果

[ 10771. 3802. 4807. 5371. 4255. 4301. 7692. 5962. 6501. 
    10576. 6910. 11630.] 

所望の結果

[ $10771 $3802 $4807 $5371 $4255 $4301 $7692 $5962 $6501 
     $10576 $6910 $11630] 

答えて

2

利益実際float配列です。

>>> print(profits) 
[$2523 $1911 $-3708 $-2914 $-600 $7265 $8211 $3945 $3328 $-2239 $660 $11630] 

編集: あなたは

np.set_printoptions(formatter={'float': lambda x: '${:.0f}'.format(x)}) 

出力によってドル記号を印刷するnumpyのを設定することができ

負の値にドル記号の左側にマイナスを持っています、次のように少し複雑な書式設定が必要です。

def dollar_formatter(x): 
    if x >= 0: 
     return '${:.0f}'.format(x) 
    else: 
     return '-${:.0f}'.format(-x) 

np.set_printoptions(precision=0, formatter={'float': dollar_formatter}) 
関連する問題