でこぼこで:
Foo =
array([[ 3.5, 0. , 2.5, 2. , 0. , 1. , 0. ],
[ 0. , 3. , 2.5, 2. , 0. , 0. , 0.5],
[ 3.5, 0. , 0. , 0. , 1.5, 0. , 0.5]])
非ゼロ要素のみが変更されるように Foo で関数を実行したい、つまり f(x) = x(nonzero)+5 の場合:
array([[ 8.5, 0. , 7.5, 7. , 0. , 6. , 0. ],
[ 0. , 8. , 8.5, 7. , 0. , 0. , 5.5],
[ 8.5, 0. , 0. , 0. , 6.5, 0. , 5.5]])
また、配列の形状/構造を同じままにしたいので、 Foo[np.nonzero(Foo)] は機能しないと思います...
numpyでこれを行うにはどうすればよいですか?
ありがとう!