ValueError:Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any()или a.all ()

Я только что обнаружил логическую ошибку в своем коде, которая вызывала всевозможные проблемы. Я случайно выполнил побитовое И вместо логическое И .

Я изменил код с:

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 ()

. Почему аналогичная ошибка не выдается при использовании побитовой операции -и как это исправить?

190
задан cs95 24 January 2019 в 16:38
поделиться