1
マスクされた値の頻度を制限する:numpyのマスク配列は、配列から始まっ
a = np.array([1,1,1,2,3,4,5,5])
とフィルタ:
m = np.array([1,5])
私は今でマスクを構築しています:
b = np.in1d(a,m)
正しく返される:
array([ True, True, True, False, False, False, True, True], dtype=bool)
一意の値のブール値True
の数を最大値2に制限する必要があります。そのため、1は3回ではなく2回だけマスクされます)。結果のマスクは、(関係なく最初の本当のTrue
値の順)に表示されます:
array([ True, True, False, False, False, False, True, True], dtype=bool)
または
array([ True, False, True, False, False, False, True, True], dtype=bool)
または
array([ False, True, True, False, False, False, True, True], dtype=bool)
理想的には、これはランダム」の一種であります"限られた頻度の値をマスクする。これまでのところ、配列内の元のユニークな要素をランダムに選択しようとしましたが、実際にマスクはその周波数に関係なくTrue
の値を選択します。
申し訳ありませんが、これはサイズ2のメートルに制限されていますか?より大きなサイズのための一般的な方法はありますか? –
実際にmを[1,2]に変更すると、間違った結果につながります。 –
@FabioLamannaうん、それは本当にバグだった。編集内容を確認してください。 – Divakar