我想删除带掩码的数组元素。例如:
row = 24
col = 24
size = row * col
a = numpy.ones((size))
mask = numpy.empty((col), dtype=numpy.bool)
mask
的值为False
或True
。
如果mask[x] = True
,则应删除a[x * row:(x + 1) * row]
的元素
PS:在我的情况下,一个索引值对应a
答案 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)