2つの配列があり、次のような複雑な条件があります。new_arr<0 and old_arr>0
私は0以外を使用していますが、エラーが発生しています。0以外の関数ヘルプ、Python Numpy
indices = nonzero(new_arr<0 and old_arr>0)
は、私が試した:私が持っているコードはこれです
indices = nonzero(new_arr<0) and nonzero(old_arr>0)
しかし、それは私に間違った結果が得られました。
これを回避する手段はありますか?また、2つの非ゼロのステートメントから共通のインデックスを取得する方法があります。例えば、場合:
indices1 = nonzero(new_arr<0)
indices2 = nonzero(old_arr>0)
、これら2つの指標が含まれます
indices1 = array([0, 1, 3])
indices2 = array([2, 3, 4])
正しい結果が(この場合には素子3であろう)これらの二つの共通の要素を取得するであろう。このような何か:
result = common(indices1, indices2)
これはまさに私が探していたものです。 &良い古くからの代わりに&を使って決して私の心に来なかった。ありがとう! –
+1ですが、両方の入力配列が同じ形状である場合にのみ機能します(OPにはそのような前提はありません)。 – Radim
@Radim:そのような前提は言及されていませんが、もしあなたが "共通の指標"について話しているならば、より大きな配列をサイズの小さなものにリサイズすることになります。 – JAB