【发布时间】:2012-03-06 23:42:44
【问题描述】:
我有两个 NumPy 数组,例如:
a = [1,2,3,4,5]
和一个过滤器数组,例如:
f = [False, True, False, False, True]
len(a) == len(f)
如何获得一个新的 numpy 数组,其中只有 f 中的相同索引为 True 的值?就我而言:[2, 5].
根据接受的解决方案(具有不同的值):
>>> a = numpy.array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> b = numpy.array([True, False, True, False, True, False, True, False, True, False])
>>> a[b]
array([1, 3, 5, 7, 9])
【问题讨论】:
-
看起来 b 是一个列表而不是一个数组,b 必须是一个布尔数组。试试
b = np.asarray(b, 'bool')
标签: python arrays filter numpy