Очевидно, что разница между тем, как Python и Numpy работают с арифметическими операциями.ge(a, b)
совпадает с a >= b
.Если один из операндов является объектом Numpy, будет вызван соответствующий метод, а если другой операнд является массивом, он выполнит сравнение поэлементно.То есть, если вы сделаете следующее, вы получите тот же результат:
In [3]: [0,2,3] >= np.float64(0.8)
Out[3]: array([False, True, True])
Python, с другой стороны, по-разному обрабатывает ситуацию как в 2, так и в 3 версиях.Вы, вероятно, используете Python-2.X, и у него есть связанная логика (почти нелогично, но в Python 3 вы не можете сравнивать объекты разных типов, если соответствующая операция явно не реализована для одного из объектов.Для встроенных объектов, кроме разных числовых типов, объекты разных типов никогда не сравниваются одинаково.
In [4]: ge([0,2,3], 0.8)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-405eded6881c> in <module>()
----> 1 ge([0,2,3], 0.8)
TypeError: '>=' not supported between instances of 'list' and 'float'
Подробнее https://docs.python.org/3/library/stdtypes.html#comparisons.