我正在尝试从具有另一个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/