我正在尝试从另一个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], ...]
存储在索引数组中。我提到了以前可以导致解决的问题。
答案 0 :(得分:2)
请尝试以下操作: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] )
。