使用 Python Pint,当乘以相同数量的单位时,我得到了一个奇怪的结果。你可能期望它们会合并,但事实并非如此。例如:
from pint import UnitRegistry
units = UnitRegistry()
Run Code Online (Sandbox Code Playgroud)
然后:
(3 * units.m) * ( 5 * units.m)
Run Code Online (Sandbox Code Playgroud)
... 结果是:
<Quantity(15, 'meter ** 2')>
Run Code Online (Sandbox Code Playgroud)
... 哪个是对的。但如果我将其中一个因素转换为毫米,如下所示:
(3 * units.m) * ( 5000 * units.mm)
Run Code Online (Sandbox Code Playgroud)
...它给出了一个无意义的答案:
<Quantity(15000, 'meter * millimeter')>
Run Code Online (Sandbox Code Playgroud)
同样的事情也会发生在除法以及其他维度上,比如质量、时间等。
但是,加法确实有效:
(3 * units.m) + ( 5000 * units.mm)
<Quantity(8.0, 'meter')>
Run Code Online (Sandbox Code Playgroud)
有人知道这是什么一回事吗?
本教程提到了to_base_units方法to_reduced_units,也许其中之一可以完成您需要的转换https://pint.readthedocs.io/en/latest/tutorial.html
它还说您可以UnitRegistry使用参数实例化auto_reduce_dimensions=True以自动完成此操作。默认情况下禁用它,因为它可能是一项昂贵的操作
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |