Python单位转换编程:Python中的单位转换

关于Python单位转换编程的问题,在unit conversion chart for physics中经常遇到, 我正在开发一个项目,让用户随着时间的推移跟踪不同的数据类型。部分基本思想是用户应该能够使用他们需要的任何单位输入数据。我一直在看这两个单位:

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

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

和数量:

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

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

36

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

你也应该看看这两个其他的 Python 单位 / 数量包:

Unum Scientific.Physics.PhysicalQuantity

我曾经调查过 Scientific.Physics.PhysicalQuantity。它并不能完全满足我的需求,但可能会满足您的需求。从您的简要描述中很难说出您需要什么功能。

我最终为单位转换和维度分析编写了自己的 python 包,但它还没有正确打包发布。我们正在使用我的 unit system in the python bindings for our OpenMM system for GPU accelerated molecular mechanics。您可以在以下位置浏览我的 python 单元代码的 svn 存储库:

SimTK python units

最终我打算将其打包以供分发。如果你觉得有趣,请让我知道。这可能会激励我更快地打包它。当我设计 SimTK python units 系统时,我正在寻找的功能包括以下内容:

在内部,所有单位制在 SimTK 中都是同样基本的。

我想要与 C ++ 中的Boost.Units系统类似的功能和灵活性。这是因为我熟悉该系统,并且因为它是在一大批杰出工程师的下设计的。Boost.Units 是一个精心制作的第二代维度分析系统。因此,我可能会争辩说 SimTK 单位制可能是第三代系统:)。请注意,虽然 Boost.Units 是一个“零开销”系统,包括所有运行时成本,

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

哪些功能对您很重要?

26

Pint最近来到这个领域。有人愿意分享他们的经验吗?看起来不错。仅供参考:在不久的将来,它看起来像Pint will be integrated with Uncertainties

11

yt-project 中还有一个名为unyt的包。unyt 的作者承认 Pint 和 astropy.units 的存在。支持从这些其他包进行转换。

unyt 的卖点是速度,它比其他两个快,在此paper中的几个基准中比较了单元包。

对于任何痴迷于性能的人来说,基准测试都是令人失望的。:-(使用这些单元系统中的任何一个计算的速度都很大。对于具有 1000 个条目的阵列,减速因子为 6-10(对于较小的阵列,情况更糟)。

免责声明:我不隶属于 unyt,我只想分享我对单位制的了解。

9

请注意,quantities对温度的支持非常差:

>>> (100 * pq.degC).rescale(pq.degF)
array(179.99999999999997) * degF
>>> (0 * pq.degC).rescale(pq.degF)
array(0.0) * degF

0 摄氏度不是 0 华氏度。他们的框架不支持任何不只是乘以一个因子的转换。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(408)
云服务器和vps哪个好:在公共IPOracle计算云上无法访问VPSNodeJS服务器
上一篇
粤语中的chock爆:PHP内爆(101 )与引号(impode php)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(40条)