gpt4 book ai didi

python - Python中的单位转换

转载 作者:IT老高 更新时间:2023-10-28 20:35:28 26 4
gpt4 key购买 nike

我正在开展一个项目,该项目允许用户随时间跟踪不同的数据类型。基本思想的一部分是用户应该能够使用他们需要的任何单位输入数据。我一直在研究这两个单位:

http://pypi.python.org/pypi/units/

和数量:

http://pypi.python.org/pypi/quantities/

但是我不确定最好的方法。据我所知,数量更复杂,但包含更好的初始单位列表。

最佳答案

我赞成在科学计算应用程序中使用显式单位。使用明确的单位类似于刷牙。它预先增加了一些乏味,但从长远来看,您获得的类型安全可以节省很多麻烦。比如说,not crashing $125 million orbiters into planets .

您还应该查看这两个其他 python 单位/数量包:

Unum

Scientific.Physics.PhysicalQuantity

我曾经研究过 Scientific.Physics.PhysicalQuantity。它不能完全满足我的需求,但可能会满足你的需求。从您的简短描述中很难判断您需要哪些功能。

我最终编写了自己的用于单位转换和维度分析的 python 包,但它尚未正确打包以供发布。我们在 Python 绑定(bind)中使用我的单位系统,用于我们的 OpenMM 系统,用于 GPU 加速分子力学。您可以在以下位置浏览我的 python 单元代码的 svn 存储库:

SimTK python units

最终我打算将其打包以进行分发。如果你觉得有趣,请告诉我。这可能会促使我尽快将其打包。我在设计 SimTK python 单位系统时一直在寻找的功能包括:

  1. 单位不一定在内部以 SI 单位存储。这对我来说非常重要,因为对我们来说一个重要的应用领域是分子尺度。在内部使用 SI 单位会导致常用分子力计算中的指数溢出。在内部,所有单位系统在 SimTK 中都同样重要。
  2. 我想要与 Boost.Units 相似的功能和灵 active C++中的系统。既因为我熟悉那个系统,也因为它是在一大群杰出工程师的监督下设计的。 Boost.Units 是一个精心设计的第二代维度分析系统。因此,我可能会争辩说 SimTK 单位系统是第三代系统:)。请注意,虽然 Boost.Units 是一个没有运行时成本的“零开销”系统,但所有 python 数量的实现,包括 SimTK 单元,都可能需要运行时成本。
  3. 我想要与 numpy 数组兼容的维度数量,但不一定需要 python numpy 包。换句话说,数量可以基于 numpy 数组或内置 python 类型。

哪些功能对您很重要?

关于python - Python中的单位转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2125076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com