0

我想用掩码删除数组的元素。例如:

row = 24
col = 24
size = row * col
a = numpy.ones((size))
mask = numpy.empty((col), dtype=numpy.bool)

mask值为FalseTrue。如果mask[x] = True, 那么 的元素a[x * row:(x + 1) * row]应该被删除。
PS:在我的情况下,一个索引值对应一个块元素a

4

2 回答 2

1

通过这个语法你可以删除数组的元素

smaller_array =np.delete(array,index)

array 表示数组值 index 表示元素的位置

于 2013-09-02T09:16:03.843 回答
0

对不起,我听错了。这是一种方法,但使用列表理解:

idx_delete=np.unique(np.concatenate([np.arange(x*row,row*(x+1)) for x in xrange(row) if mask[x]]))
np.delete(a,idx_delete)
于 2013-09-02T13:03:02.163 回答