我正在尝试从具有另一个ndarray中的索引的ndarray获取值,但我不断收到此错误


  IndexError数组索引过多。


我尝试从scores中获取值的数组具有scores.shape = (10,10000)
并且指出索引indices的数组具有indices.shape = (10000,2)

我正在尝试通过这种方式获取值:

values = scores[tuple(indices)]


但这是我得到错误的地方。

我正在尝试通过这种方式来访问分数的多个单独值,例如scores[0,6], scores[1,9]在另一个数组中,所以我得到类似

[scores[0,6],scores[1,9],...]


一劳永逸,避免循环。那些[[0,6] , [1,9], ...]存储在索引数组中。我提到前面的情况,以免导致变通。

最佳答案

请尝试以下操作:scores[indices[:,0],indices[:,1]]。或者,选择scores[tuple(indices.T)]

当您执行scores[tuple(indices)]时,tuple(indices)将创建一个2元素数组的元组。当您尝试获取10,000维数组的2个元素时,Numpy会对此进行解释!对于需要的索引类型,Numpy期望每个维都包含值的数组。换句话说,它需要( [x1,y1], [x2,y2] )而不是( [x1,x2], [y1, y2] )

关于python - 使用另一个ndarray中的索引评估ndarray时出现IndexError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35490396/

10-11 01:43