使用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')>
有人知道吗?
答案 0 :(得分:2)
本教程提到了to_base_units
和to_reduced_units
方法,也许其中之一可以完成您需要的转换https://pint.readthedocs.io/en/latest/tutorial.html
它还表示您可以使用参数UnitRegistry
实例化auto_reduce_dimensions=True
以使其自动完成。默认情况下禁用它,因为它可能是一项昂贵的操作