は、2つのnumpyサブアレイを1つのものに置き換える簡単なソリューションですが、entireは2つの以前のアレイのエントリに対して呼び出された関数の結果です。例えば:2つのnumpyサブアレイを1つのサブアレイに置き換える方法
f_add(a, b, c, d):
return a + b + c + d
f_sub(b, d):
return b-d
コンクリート
[1, a, b][1, c, d] -> [1, f_add, f_sub]
:またとして
[1, 0, 50], [1, 3, 1] -> [1, 54, 49]
、行[1, 0, 50], [1, 3, 1]
より大きい配列(例では1行目)の一部であり、それはあるべきです置換されたin-place
([[1, 0, 50], [2, 0, 50], [1, 3.0, 1.0]],
[[1, 0, 50], [2, 0, 50], [2, 3.0, 1.0]])
([[1, 54, 49], [2, 0, 50]],
[[1, 0, 50], [2, 0, 50], [2, 3.0, 1.0]])
ありがとう!
EDIT:
f_add機能とf_subは、私が何をしたいのか説明し、エントリの変更が呼び出される関数の結果であることをするだけの例です。 実際には、(より)意味のある計算を実行するやや複雑な関数を使用します。
第2の点は、この置換は、最初のエントリが同じ要素に対してのみ実行されることです。 したがって、最初の行では[1, 0. 50.]
と[1, 3.0, 1.0]
がマージし、2番目の場合は[2, 0., 50.]
と[2, 30, 1.0)
となります。
この例では、どのサブアレイがマージするのかを識別する問題を別にしたいと考えましたが、できるだけ一般的なものに含めるべきだと思います。
より完全な例上記1にその結果が以下のようになります:
([[1, 0., 50.], [2, 0., 50], [1, 3.0, 1.0]],
[[1, 0., 50.], [2, 0., 50.], [2, 3.0, 1.0]])
有数の:
([[1, 54., 49.], [2, 0., 50.]],
[[1, 0., 50.], [2, 54., 49.]])
あなたの現在のコードを追加すると素晴らしいでしょう! –