3

使用 Python Pint,当乘以相同数量的单位时,我得到了一个奇怪的结果。你会期望他们合并,但他们没有。例如:

from pint import UnitRegistry
units = UnitRegistry()

然后:

(3 * units.m) * ( 5 * units.m)  

... 结果是:

<Quantity(15, 'meter ** 2')>

... 哪个是对的。但是,如果我将其中一个因素转换为毫米,如下所示:

(3 * units.m) * ( 5000 * units.mm)

...它给出了一个无意义的答案:

<Quantity(15000, 'meter * millimeter')>

同样的事情也发生在除法上,以及其他维度上,比如质量、时间等等。

但是,添加确实有效:

(3 * units.m) + ( 5000 * units.mm)
<Quantity(8.0, 'meter')>

有人知道这是什么一回事吗?

4

1 回答 1

4

教程提到to_base_unitsto_reduced_units方法,也许其中之一做你需要的转换https://pint.readthedocs.io/en/latest/tutorial.html

它还说您可以UnitRegistry使用参数实例化以auto_reduce_dimensions=True自动完成此操作。默认情况下禁用它,因为它可能是一项昂贵的操作

于 2018-10-16T00:09:01.250 回答