[Numpy-discussion] __array_priority__ don't work for gt, lt, ... operator
nouiz at nouiz.org
Fri May 10 12:08:35 EDT 2013
it popped again on the Theano mailing list that this don't work:
np.arange(10) <= a_theano_vector.
The reason is that __array_priority__ isn't respected for that class of
This page explain the problem and give a work around:
The work around is to make a python function that will decide witch version
of the comparator to call and do the call. Then we tell NumPy to use that
function instead of its current function with: np.set_numeric_ops(...)
But if we do that, when we import theano, we will slow down all normal
numpy comparison for the user, as when <= is execute, first there will be
numpy c code executed, that will call the python function to decide witch
version to do, then if it is 2 numpy ndarray, it will call again numpy c
That isn't a good solution. We could do the same override in C, but then
theano work the same when there isn't a c++ compiler. That isn't nice.
What do you think of changing them to check for __array_priority__ before
doing the comparison?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion