访问numpy.where索引中的元素

时间:2015-07-02 23:24:23

标签: python arrays numpy

我是Python世界的初学者,希望有人能回答我的问题。我有一个数组,需要访问元素的某些索引,如下所示

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。感谢您查看我的问题和任何支持。

1 个答案:

答案 0 :(得分:2)

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

要从4访问indx,您可以:indx[0][0]。第一个[0]选择indx元组的第一个元素,即array([4, 5], dtype=int64),第二个元素访问该数组的元素。