2015-07-02 44 views
2

我是Python世界的初学者,希望有人能回答我的问题。我还没有一个数组,并需要访问元件的某些指标如下numpy.where索引内的访问元素

x = np.random.rand(10) 

x 
array([ 0.56807058, 0.8404783 , 0.86835717, 0.76030882, 0.40242679, 
     0.22941009, 0.56842643, 0.94541468, 0.92813747, 0.95980955]) 

indx = np.where(x < 0.5) 

indx 
(array([4, 5], dtype=int64),) 

然而,当我尝试访问第一个元素与indx[0]它返回array([4, 5], dtype=int64)。我想要做的是访问indx内的元素4和5。感谢您查看我的问题和任何支持。

+0

如果'indx [0]'得到数组([4,5]',你认为会得到4吗? –

回答

2

np.where返回指数的tuple。在这种情况下,元组只包含一个索引数组。这与where如何处理多维数组一致。它返回一个包含多个数组的元组,它们一起定义了非零元素的索引。

要访问4indx你应该这样做:indx[0][0]。第一个[0]选择indx元组的第一个元素,即array([4, 5], dtype=int64),第二个元素访问此数组的元素。