Chr*_*ett 46 python units-of-measurement
我正在开发一个项目,让用户可以随时跟踪不同的数据类型.基本思想的一部分是用户应该能够使用他们需要的任何单位输入数据.我一直在看两个单位:
http://pypi.python.org/pypi/units/
和数量:
http://pypi.python.org/pypi/quantities/
但是我不确定最好的方法.据我所知,数量更复杂,但包括更好的初始单位列表.
Chr*_*uns 29
我赞赏在科学计算应用中使用显式单位.使用明确的单位类似于刷牙.它预先增加了一些乏味,但从长远来看,你获得的类型安全可以省去很多麻烦.比方说,不要将1.25亿美元的轨道飞行器撞向行星.
您还应该查看这两个其他python单元/数量包:
Scientific.Physics.PhysicalQuantity
我曾经研究过Scientific.Physics.PhysicalQuantity.它不能满足我的需求,但可能会满足你的需求.很难说出您的简要说明中需要哪些功能.
我最终编写了自己的python包进行单位转换和维度分析,但它尚未正确打包以供发布.我们在用于GPU加速分子力学的OpenMM系统的python绑定中使用我的单元系统.您可以在以下位置浏览我的python单元代码的svn存储库:
最终我打算打包它以便分发.如果您觉得有趣,请告诉我.这可能会激励我尽早打包它.我在设计SimTK python单元系统时所寻找的功能包括以下内容:
哪些功能对您很重要?
Mar*_*ski 19
品脱最近来到了这个领域.有人愿意分享他们的经历吗?看起来不错.仅供参考:看起来Pint将在不久的将来与不确定性相结合.
我很惊讶还没有人提到 SymPy。SymPy是一个成熟且维护良好的 Python 符号数学库,而且是NumFOCUS 赞助的项目。
它有一个物理模块,其中包含许多有用的类和函数,用于“解决物理问题”。我认为,与您最相关的是,它有一个Unit子模块,其中包含您需要的一切;只需阅读优秀的文档即可。
请注意,quantities
对温度的支持非常差:
>>> (100 * pq.degC).rescale(pq.degF)
array(179.99999999999997) * degF
>>> (0 * pq.degC).rescale(pq.degF)
array(0.0) * degF
Run Code Online (Sandbox Code Playgroud)
0摄氏度不是0华氏度.他们的框架不支持任何类型的转换,而不仅仅是乘以一个因子.
看起来另一个包也可以做到这一点,由 web2py 的 Massimo DiPierro 编写,名为Buckingham。
另外值得注意的是,布莱恩这样的事情已经有一段时间了。