こちらの回答を読んで、これは、ネストされた配列を置き換えるために使用できます。
試してみました:
numpy を np としてインポート
frm = [[[1,2]、[2,3]]、[[3,4]、[4,5]]、[[5,6]、[6,7]]]
mask = [[False, True], [False, True], [True, False]]
repl = [0,0]
# frm を numpy 配列に変換:
frm = np.array(frm)
# 元の配列を変更しないように、frm のコピーを作成します。
to = frm.copy()
# マスクして、置換値を挿入します。
[マスク] = repl
印刷する
しかし、エラー IndexError: boolean index did not match indexed array along dimension 0; が表示されます。次元は 3 ですが、対応するブール値の次元は 2 です
ここでの目標は、ネストされた配列を別の配列に置き換えることです。例えば。最初の列のこの値 [2,3]
をこの [0,0]
に置き換えたい
これを試してください:
to[np.newaxis, mask] = repl
または、マスクと置き換える値を配列に変換します。それも機能しています。
frm = [[[1,2], [2,3]], [[3,4], [4,5]], [[5,6], [6,7]] ]
mask = np.array([[False, True], [False, True], [True, False]])
repl = np.array([0,0])
# frm を numpy 配列に変換:
frm = np.array(frm)
# 元の配列を変更しないように、frm のコピーを作成します。
to = frm.copy()
# マスクして、置換値を挿入します。
[マスク] = repl
印刷する
出力:
[[[1 2]
[0 0]]
[[3 4]
[0 0]]
[[0 0]
[6 7]]]