整块美元的numpy set_printoptions格式

时间:2017-05-20 11:19:40

标签: python numpy

我希望收入和支出的输出为全美元。我已将打印选项设置为int但是我仍然会收到小数点,并且无法在文档中看到我将如何将整个金额显示为美元。

.jks

这是我的代码可行,但我不能格式化为全部美元。

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.]

1 个答案:

答案 0 :(得分:2)

利润实际上是一个浮点数组。 你可以设置numpy来打印美元符号

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

输出:

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

修改

要使美元符号左侧的减号显示负值,需要稍微复杂的格式,例如:

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})