0

配列の要素をマスクで削除したい。例えば:

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

の値maskFalseまたはTrueです。の場合mask[x] = True、の要素をa[x * row:(x + 1) * row]削除する必要があります。
PS: 私の場合、1 つのインデックス値は 1 つのブロック要素に対応しますa

4

2 に答える 2

1

この構文を使用すると、配列の要素を削除できます

smaller_array =np.delete(array,index)

array は配列の値を示します index は要素の位置を示します

于 2013-09-02T09:16:03.843 に答える
0

すみません、私はそれを間違っていました。ここでは、リスト内包表記を使用してそれを行う 1 つの方法を示します。

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 に答える