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]