【发布时间】:2016-09-03 14:02:49
【问题描述】:
我想知道如何将有效位数增加到小数点后。 原始的“rf”numpy 数组包含浮点数。
import numpy as np
rf=daily_rets(df)
[ 7.11441183 7.12383509 7.13325787 7.16152716 7.17094994 7.17094994 7.18979692 7.18979692 7.19921923 7.19921923 7.19921923 7.19921923 7.19921923 7.19921923 7.19921923 7.20864296 7.20864296 7.20864296 7.20864296 7.20864296]
但是当我执行操作时,我得到了一个不需要的输出
rf[0:]=(1+rf[0:]/100)**(1/252)
我得到以下输出 [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
np.around() 也无助于给我与上面相同的输出
rf[0:]=np.around((1+rf[0:]/100)**(1/252), decimals=6)
我意识到上述操作会使数字非常小,但我仍然希望出现小数点后的数字
【问题讨论】:
-
Python division的可能重复
-
在 Python 3 中,这是我在前四个元素上应用
(1+rf[0:]/100)**(1/252)得到的结果:array([ 1.00027276, 1.00027311, 1.00027346, 1.00027451])你的问题是因为整数除法。您可以使用 floats(1+rf[0:]/100.0)**(1/252.0)或链接问题中的其他方法来修复它。 -
问题依然存在。我尝试了你的建议,我得到了相同的输出
-
Nagesh,您是否将
100更改为100.0和 将252更改为252.0?实际上,rf中的值是浮点数,因此将100更改为100.0应该没有什么区别。 (使用 Python 2 时,您可以通过始终将from __future__ import division放在 Python 文件的顶部来避免将来出现此类问题。) -
@ayhan 问题已得到纠正。我犯了一个错误,没有把250改成250.0,给您带来的不便,敬请见谅。
标签: python numpy significant-digits