別の 2D 配列の条件が真であるインデックスで、ある 3D 配列から別の 3D 配列にデータをコピーしたいと考えています。3 つの配列はすべて、最初の 2 次元形状 (x、y 座標) が同じです。
私はそれが何かのようになるだろうと思った、
a[c == cond] = b[c == cond]
ただし、この場合、検査時にデータが破損/文字化けしています。これは間違った方法ですか、それとも正しい方法であり、コードのどこかに問題がありますか?
ありがとう!
別の 2D 配列の条件が真であるインデックスで、ある 3D 配列から別の 3D 配列にデータをコピーしたいと考えています。3 つの配列はすべて、最初の 2 次元形状 (x、y 座標) が同じです。
私はそれが何かのようになるだろうと思った、
a[c == cond] = b[c == cond]
ただし、この場合、検査時にデータが破損/文字化けしています。これは間違った方法ですか、それとも正しい方法であり、コードのどこかに問題がありますか?
ありがとう!
配列がまったく同じ形状の場合、次のことができます
import numpy as np
a = np.random.rand(4,5,3)
b = np.random.rand(4,5,3)
c = np.random.rand(4,5,3)
cond = c > 0.5 # for example
b[cond] = a[cond]
ただし、最後の軸で形状が異なる場合は、何が起こると予想されるかを説明する必要があります。
申し訳ありませんが、コピー先の配列には異なる dtype があり、元の dtype に変換するのではなく、その配列の dtype にキャストしていました。ソース配列と同じ dtype でその配列を初期化することで修正されました。