ValueError: O valor de verdade de uma matriz com mais de um elemento é ambíguo. Use a.any () ou a.all ()

Acabei de descobrir um bug lógico no meu código que estava causando todos os tipos de problemas. Eu estava inadvertidamente fazendo umbit a bit E em vez de umAND lógico.

Eu mudei o código de:

<code>r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) & (r["dt"] <= enddate))
selected = r[mask]
</code>

PARA:

<code>r = mlab.csv2rec(datafile, delimiter=',', names=COL_HEADERS)
mask = ((r["dt"] >= startdate) and (r["dt"] <= enddate))
selected = r[mask]
</code>

Para minha surpresa, recebi a mensagem de erro bastante enigmática:

ValueError: O valor de verdade de uma matriz com mais de um elemento é ambíguo. Use a.any () ou a.all ()

Por que um erro semelhante não foi emitido quando uso uma operação bit a bit - e como faço para corrigir isso?

questionAnswers(5)

yourAnswerToTheQuestion