Я только что обнаружил логическую ошибку в моем коде, которая вызывала всевозможные проблемы. Я непреднамеренно выполнял побитовое И вместо логического И.
Я изменил код:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]
TO:
r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) and (r["dt"] <= enddate))
selected = r[mask]
К моему удивлению, я получил довольно загадочное сообщение об ошибке:
ValueError: значение истинности массива с более чем одним элементом неоднозначный. Используйте a.any() или a.all()
Почему подобная ошибка не испускалась при использовании побитовой операции - и как это исправить?