4

いくつかの条件に従って、コードでさらに使用するために既存のマスクを変更したい:

import pylab
mask1 = arange(10) > 5;
# [False False False False False False  True  True  True  True]
mask2 = arange(10) >8;
# [False False False False False False False False False  True]
mask1[mask2] = False
print mask1
[ True False False False False False  True  True  True  True]

ご覧のとおり、変更されたのは最初の要素であり、期待どおりの最後の要素ではありません。これを行う正しい方法は何ですか?

編集:申し訳ありませんが、コードが正しいと指摘した人もいました。そこで何が起こっていたのかわかりません。質問を削除します。

4

2 に答える 2

2

コードに問題はありません。私はそれを試してみましたが、正しい結果が得られました (表示される結果とは異なります)。

同じことを行う別の方法を次に示します。

mask1 &= ~mask2
于 2012-05-25T15:06:08.067 に答える
0

次のようにマスクを作成できるように思えます。

mask1= logical_and(arange(10)>5,arange(10)<=8)

またはもっと簡単に:

mask1 = (arange(10)>5) & (arange(10)<=8)
于 2012-05-25T15:06:29.227 に答える