我是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。感谢您查看我的问题和任何支持。
答案 0 :(得分:2)
np.where
会返回tuple
个索引。在这种情况下,元组只包含一个索引数组。这与where
处理多维数组的方式一致。它返回一个包含多个数组的元组,这些数组一起定义了非零元素的索引。
要从4
访问indx
,您可以:indx[0][0]
。第一个[0]
选择indx
元组的第一个元素,即array([4, 5], dtype=int64)
,第二个元素访问该数组的元素。