Python:IndexError:index(7)超出范围0(=< = index< 7),维度为0

时间:2015-02-18 19:58:08

标签: python

这个问题可能有一个简单的原因,但我现在没有看到,也许其他人会遇到类似的问题。

一旦该计划开始运作,它将进行美国期权定价。 这就是谜题:

option_price = numpy.zeros(shape = (time_steps, time_steps))
stock_price = ... #computed earlier, as a matrix with the same dimensions as option_price
    if (putcall =='Put'):
        '''see if the option at that final price should have been executed or not'''
        option_price[time_steps-1, time_steps-1] = max([ (strike - stock_price[time_steps-1, time_steps-1]), 0])
        option_price[time_steps-1, time_steps-2] = max([ (strike - stock_price[time_steps-1, time_steps-2]), 0])
        '''recursively determine if the option at that time and price should have been executed or not'''

当我用time_steps = 8调用此方法时,我得到的错误消息是:

option_price[time_steps-1, time_steps-1] = max([ (strike - stock_price[time_steps-1, time_steps-1]), 0])
IndexError: index (7) out of range (0<=index<7) in dimension 0

在此消息之后,我会尝试修复索引 - 如果我能看到当前索引的错误。是否禁止从具有相同尺寸的矩阵计算矩阵的条目?还是有其他问题只能通过这种方式表现出来吗?

非常感谢您提前!我非常感谢,如果不是贬低,你可以具体说出你不喜欢这个问题。

3 个答案:

答案 0 :(得分:1)

如果索引范围为0&lt; = index&lt; 7,则表示该范围的维度为7,而不是8.检查当时矩阵的形状实际是什么,并确保它没有错误创造得太小。

答案 1 :(得分:0)

数组以0开头。所以你的第一个元素1是数组[0]。第8个元素假设索引超出范围。因为8的元素假设数组[7]抱歉,如果这没有意义。但是数组7元素不存在,数组中的最后一个元素只是数组[6] ......

答案 2 :(得分:0)

错误非常自我解释

IndexError: index (7) out of range (0<=index<7) in dimension 0

您询问了元素7,但范围是0到6。