Рассмотрим следующий NumPy массив DTYPE float32
:Автоматическое продвижение float32 в numexpr
In [29]: x = numpy.arange(10, dtype=numpy.float32)
Когда я умножить его на 2
с помощью pytables.Expr
, я получаю float32
массив обратно:
In [30]: tables.Expr('x * 2').eval().dtype
Out[30]: dtype('float32')
Но когда я умножьте его на 2.0
, я получаю массив float64
:
In [31]: tables.Expr('x * 2.0').eval().dtype
Out[31]: dtype('float64')
Есть ли способ указать литерал с плавающей запятой в приведенном выше выражении таким образом, чтобы не приводил к тому, что результат должен быть повышен до float64
?
В целом, у меня есть выражение, используя float32
массивы, и я хочу, чтобы гарантировать, что результат также типа float32
(я не против float64
используется для промежуточных вычислений, но я не могу позволить себе хранить результаты как float64
). Как мне это сделать?