【发布时间】:2016-05-19 14:26:54
【问题描述】:
当我使用numpy.nonzero() 时,例如numpy.nonzero(bool_row),其中bool_row 是一个包含boolean 值的series。它返回一个元组,它只包含一个数组。我想检索数组中的元素并将它们放在一个列表中。该怎么做?
【问题讨论】:
标签: python-3.x numpy multidimensional-array
当我使用numpy.nonzero() 时,例如numpy.nonzero(bool_row),其中bool_row 是一个包含boolean 值的series。它返回一个元组,它只包含一个数组。我想检索数组中的元素并将它们放在一个列表中。该怎么做?
【问题讨论】:
标签: python-3.x numpy multidimensional-array
索引时,元组与实际值相同,例如
x[1,2]
x[(1,2)]
idx = (1,2); x[idx]
所以在你的情况下,nonzero 的结果可以直接用作索引元组。
In [566]: x=np.arange(10,20)
In [567]: idx = np.nonzero(x%2)
In [568]: idx
Out[568]: (array([1, 3, 5, 7, 9], dtype=int32),)
In [569]: x[idx]
Out[569]: array([11, 13, 15, 17, 19])
来自nonzero 文档
对应的非零 可以通过以下方式获得值::
a[nonzero(a)]
如果你需要一个列表而不是一个数组,你必须添加 .tolist() 方法。
【讨论】: