Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算内部收益率的百分比_Python_Arrays_For Loop_Irr - Fatal编程技术网

Python 计算内部收益率的百分比

Python 计算内部收益率的百分比,python,arrays,for-loop,irr,Python,Arrays,For Loop,Irr,以下是我尝试使用的代码以获取结果,但我得到一个错误: import numpy array = [-1000,0,0,1094.60,0,0,1094.60] for b in array: a = round(numpy.irr(array), b-1) * 100 print (round(a,2)) 错误: TypeError: 'float' object cannot be interpreted as an integer 但是,仅仅替换“b-1”就可以让我的代码正

以下是我尝试使用的代码以获取结果,但我得到一个错误:

import numpy

array = [-1000,0,0,1094.60,0,0,1094.60]

for b in array:
    a = round(numpy.irr(array), b-1) * 100 
print (round(a,2))
错误:

TypeError: 'float' object cannot be interpreted as an integer
但是,仅仅替换“b-1”就可以让我的代码正常工作,但我不能使用它,因为数组可以尽可能大,也可以尽可能小。我不允许手动输入替换“b-1”的数字。以下是相同的工作代码

import numpy

array = [-1000,0,0,1094.60,0,0,1094.60]

for b in array:
    a = round(numpy.irr(array), 6) * 100 
print (round(a,2))

我需要一种方法来为任意大小的数组自动执行此操作。

您之所以会出现错误,是因为您试图将速率四舍五入到1093.60位小数(第四次迭代为b-1)

适用于任何大小的数组。你不必给它一个尺寸(你没有)。我想你是想把利率打印成一个百分比,四舍五入到小数点后2位。改用这个:

rate = numpy.irr(array) * 100
print "rate =", round(rate, 2)
在我前面给出的代码的末尾使用此选项,可以得到以下输出进行比较:

Present Value (P) at rate 0.0125 = 0.217803365612
Present Value (P) at rate 0.01875 = -0.143198101517
Present Value (P) at rate 0.015625 = 0.0349275148787
Present Value (P) at rate 0.0171875 = -0.0547196000329
Present Value (P) at rate 0.01640625 = -0.0100432897584
Present Value (P) at rate 0.016015625 = 0.0124051532756
Present Value (P) at rate 0.0162109375 = 0.00117171042648
rate = 1.62

可以就这样。现在,我可以使用我在上一篇文章中使用的相同代码来确保一切正常?还是不?因为我使用的是相同的代码,而“netflow”的值并不相同。然而,当我写在纸上的时候,它和我的答案是一致的。请说清楚。您问我是否可以使用相同的代码,但随后说明相同的代码不会给您相同的值。我几乎无法检查原始数据,因为那篇文章似乎已经不存在了,并且在另一个帐户下。我不是指原始代码。我在这个链接上的最后一个代码是:你现在可以在那里回答了