Python 计算大小时numpy数组中的索引过多

Python 计算大小时numpy数组中的索引过多,python,numpy,indexing,Python,Numpy,Indexing,这是我在应用函数时遇到的错误: def reg_interval_size(self, prediction, y, significance): idx = int(significance * 100 - 1) prediction = prediction[:, idx] prediction_size = prediction[:, 1] - prediction[:, 0] return prediction_size 我的预测间隔

这是我在应用函数时遇到的错误:

def reg_interval_size(self, prediction, y, significance):
    idx = int(significance * 100 - 1)
    prediction = prediction[:, idx]
    
    prediction_size = prediction[:, 1] - prediction[:, 0]
    
    return prediction_size
我的预测间隔

IndexError: index 4 is out of bounds for axis 1 with size 2
例子 预期产出 (它只是一个1D数组,用于计算预测间隔数组的每一行之间的大小差异)


idx
是一个
int
所以
idx[0]
没有意义

prediction
是一个2d数组,因此您无法使用以下3个索引访问它:

prediction=prediction[:,:,idx]#错误
我不知道你想做什么,但你可以这样做:

prediction=prediction[:,idx]

这不是因为您有2d数组,并试图用3个索引对其进行索引吗?所以你想要
prediction[idx]
prediction[:,idx]
(或完全不同的东西),如果你想分享一个小例子和预期的结果,那会很有帮助。@YevhenKuzmovych嘿,谢谢你的指针,我已经相应地更新了它,但现在得到了一个新的错误。对于numpy来说仍然是新的:对于
重要性
idx
是4,
int(0.05*100-1)
。如果
predicition
只有两列,则这不起作用。@hpaulj是的,您完全正确,没有注意到这一点。我想知道是否有可能将它设置为一种方式,每次我改变重要性的值时,都不会得到一个索引错误。我能够相应地更新问题,但现在得到一个新的错误。我仍在试图找出相应的numpy。对不起,你是对的,只是做了。唯一的问题是我更新了你刚才建议的代码。现在我得到了另一个索引错误,如问题中所示。
[[-0.08654671  0.7144939 ]
 [-0.61418434  0.18685626]
 [ 0.16648421  0.96752482]
 ...
 [ 0.01177342  0.81281403]
 [ 0.44408509  1.2451257 ]
 [ 0.37012494  1.17116555]]
prediction_size = reg_interval_size(self, prediction, y, significance= 0.05):
[0.80104061 0.80104061 0.80104061 ... 0.80104061 0.80104061 0.80104061]