我知道inf
代表什么。
我要做的是:我要把数据帧中的每个值相乘。
variavel_de_transformacao_1=variavel_de_transformacao_1.prod(axis=0)
但结果我得到了一个我无法表示的inf数。有人能帮我吗?
return
1 1.000004
2 1.000002
3 1.000320
4 0.999982
5 0.998743
...
252 1.000432
但我的结果是:
variável_de_transformacao_1= inf
系列中的某个位置必须有一个numpy.inf
。如果您使用类似final price / initial price
的表达式计算回报,那么只要初始价格为零,就会出现inf
值。
您可以通过调用来验证这一点
>>> assert not numpy.isinf(variavel_de_transformacao_1).any()
>>> assert numpy.isfinite(variavel_de_transformacao_1).all()
我试着在一个包含所有大于1.0的正值的系列上调用prod
,看看它是否会溢出。
>>> s = pandas.Series(numpy.full(fill_value=1.01, shape=252))
>>> s.prod()
12.274002099240246
尝试使用更大的数字,产品不是inf
:
for value in [1.0, 1.01, 1.05, 1.25, 1.50]:
s = pandas.Series(numpy.full(fill_value=value, shape=252))
print("{:4.2f}: {:30.2f}".format(value, s.prod()))
Uniform elem. value Product
1.00: 1.00
1.01: 12.27
1.05: 218626.78
1.25: 2638294536026986064642048.00
1.50: 237135886481351290441812215478402248179974144.00