使用掩码删除数组的元素

时间:2013-09-02 09:08:12

标签: python numpy

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

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

的一个块元素

2 个答案:

答案 0 :(得分:1)

通过此语法,您可以删除数组元素

smaller_array =np.delete(array,index)

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

答案 1 :(得分: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)