2 つの numpy ブール配列 (a
およびb
) があります。それらの要素のいくつが等しいかを見つける必要があります。現在、私はそうしていますlen(a) - (a ^ b).sum()
が、私が理解しているように、xor操作はまったく新しいnumpy配列を作成します。不要な一時配列を作成せずに、この望ましい動作を効率的に実装するにはどうすればよいですか?
numexpr を使用してみましたが、うまく動作しません。True が 1 で False が 0 であるという概念をサポートしていないため、 を使用する必要ne.evaluate("sum(where(a==b, 1, 0))")
があり、約 2 倍の時間がかかります。
編集:これらの配列の 1 つが実際には異なるサイズの別の配列へのビューであり、両方の配列が不変であると見なされるべきであることに言及するのを忘れていました。どちらの配列も 2 次元で、サイズは 25x40 前後になる傾向があります。
はい、これは私のプログラムのボトルネックであり、最適化する価値があります。