BUG: pd.eval against single element array using numexpr engine coerces to scalar · Issue #10546 · pandas-dev/pandas (original) (raw)
import pandas as pd
# scalar (OK)
s = 1
pd.eval('s', engine='numexpr')
# 1L
pd.eval('s', engine='python')
#1
# array
a = np.array([1])
# OK
pd.eval('a', engine='python')
# array([1])
# NG
pd.eval('a', engine='numexpr')
# 1L
Internally, we can distinguish them using returned shape.
import numexpr as ne
ne.evaluate('s')
# array(1L)
ne.evaluate('a')
# array([1])
ne.evaluate('s').shape
# ()
ne.evaluate('a').shape
# (1,)