あらゆる種類の問題を引き起こしているコードの論理的なバグを発見しました。論理積の代わりにビット単位のANDを誤って実行していました。
コードを次のように変更しました:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]
に:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) and (r["dt"] <= enddate))
selected = r[mask]
驚いたことに、私はかなり不可解なエラーメッセージを受け取りました:
ValueError:複数の要素を持つ配列の真理値があいまいです。a.any()またはa.all()を使用します
ビット演算を使用したときに同様のエラーが発生しなかったのはなぜですか?これを修正するにはどうすればよいですか?