我赞扬在科学计算应用程序中使用显式单位。 使用显式单位类似于刷牙。 它在前面增加了一些乏味,但是从长远来看,您获得的类型安全性可以节省很多麻烦。 比如说,不要让1.25亿美元的轨道器坠毁。

您可能还应该检查另外两个python单位/数量软件包:

之一

科学物理物理量

我曾经研究过Scientific.Physics.PhysicalQuantity。 它不能完全满足我的需求,但可以满足您的需求。 从简短的说明中很难说出您需要什么功能。

我最终编写了自己的python软件包以进行单位转换和尺寸分析,但尚未正确包装以供发布。 我们将我的单位系统用于我们的OpenMM系统的python绑定中,以实现GPU加速的分子力学。 您可以在以下位置浏览我的python单元代码的svn存储库:

SimTK python单位

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

单位不一定在内部存储为SI单位。 这对我来说非常重要,因为对我们来说,一个重要的应用领域是分子规模。 在内部使用SI单位会导致常用的分子力计算中出现指数溢出。 在内部,所有单元系统在SimTK中都是同等重要的。

我想要与C ++中的Boost.Units系统类似的功能和灵活性。 既因为我熟悉该系统,又因为它是在一大批才华横溢的工程师的监督下设计的。 Boost.Units是精心设计的第二代尺寸分析系统。 因此,我可能会认为SimTK单位系统是第三代系统:)。 请注意,尽管Boost.Units是一个“零开销”系统,并且没有运行时成本,但是所有python数量的实现(包括SimTK单位)都可能会消耗运行时成本。

我想要与numpy数组兼容的尺寸确定的数量,但不一定需要python numpy包。 换句话说,数量可以基于numpy数组或基于内置的python类型。

哪些功能对您很重要?