Python Pint 乘法时不合并相同数量的单位
Python Pint doesn't merge units of the same quantity when multiplying
使用 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')>
有人知道这件事吗?
教程提到了 to_base_units
和 to_reduced_units
方法,也许其中一种方法可以完成您需要的转换 https://pint.readthedocs.io/en/latest/tutorial.html
它还说您可以使用参数 auto_reduce_dimensions=True
实例化 UnitRegistry
以自动完成此操作。默认情况下禁用它,因为它可能是一项昂贵的操作
使用 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')>
有人知道这件事吗?
教程提到了 to_base_units
和 to_reduced_units
方法,也许其中一种方法可以完成您需要的转换 https://pint.readthedocs.io/en/latest/tutorial.html
它还说您可以使用参数 auto_reduce_dimensions=True
实例化 UnitRegistry
以自动完成此操作。默认情况下禁用它,因为它可能是一项昂贵的操作