2015-07-02 45 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),第二個元素訪問此數組的元素。