当前位置: 首页 > 面试题库 >

Python中的单位转换

明利
2023-03-14
问题内容

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

html" target="_blank">http://pypi.python.org/pypi/units/

和数量:

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

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


问题答案:

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

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

um

科学物理物理量

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

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

SimTK python单位

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

  1. 单位不一定在内部存储为SI单位。这对我来说非常重要,因为对我们而言,一个重要的应用领域是分子规模。在内部使用SI单位会导致常用分子力计算中的指数溢出。在内部,所有单元系统在SimTK中都是同等重要的。
  2. 我想要与C ++中的Boost.Units系统类似的功能和灵活性。既因为我熟悉该系统,又因为它是在一大批才华横溢的工程师的监督下设计的。Boost.Units是精心设计的第二代尺寸分析系统。因此,我可能会认为SimTK单位系统是第三代系统:)。请注意,尽管Boost.Units是一个“零开销”系统,并且没有运行时成本,但是所有python数量的实现(包括SimTK单位)都可能会消耗运行时成本。
  3. 我想要与numpy数组兼容的确定数量的数量,但不一定需要python numpy包。换句话说,数量可以基于numpy数组或基于内置的python类型。

哪些功能对您很重要?



 类似资料:
  • 问题内容: 给定一个十进制整数(例如65),如何反转Python中的基础位?即。以下操作: 看来该任务可以分为三个步骤: 将十进制整数转换为二进制表示形式 反转位 转换回十进制 步骤#2和3似乎很简单(这个相关的步骤#2 SO问题),但我卡在步骤#1。步骤#1的问题是使用填充零来检索完整的十进制表示形式(即65 = 01000001,而不是1000001)。 我到处搜寻,但似乎找不到任何东西。 问

  • 问题内容: 为什么没有单元的情况下,以下转换在Firefox中不起作用?一旦添加单位,它就可以工作。似乎其他主要的浏览器对这些单位都漠不关心。 据我所知,这是过渡时间“ 0”的唯一示例,没有单位,在Firefox中不起作用。 您可以在JSFiddle上看到它的运行以及与单元的配合。 这是在JSFiddle上没有单元且相同的相同代码。 如您所见,Firefox是唯一似乎崩溃的浏览器。另外,这是代码:

  • 问题内容: 我正在JScience库中寻找一种将一种单位类型转换为另一种单位类型的方法。给定每种类型的基本单位之间的因子,我应该可以转换。但是,似乎JScience对于转换不是很好,只允许在相同基本类型的单元之间进行转换。 基本上,我正在编写一个减肥应用程序,我需要能够在卡路里,焦耳,千焦耳,克,磅,千克等之间进行转换。它的营养成分丰富,包括碳水化合物,碳水化合物和脂肪含量。 例: 每1克碳水化合

  • 问题内容: 我正在寻找一种用于SQL中自定义单位转换的解决方案,我公司使用的数据库是Microsoft SQL Server,因此我需要编写一个SQL以返回基于“单位转换表”的转换因子 说: 单位换算表: 问题:如果我有10盒,以克为单位的鸡翅的期末存货是多少? 如何编写此sql返回“转换因子”? 提前致谢 问题答案: 我认为递归表最好找到从您期望的单位到期望的单位之间的路径。这样的事情(这假设数

  • 问题内容: 如何将格式的人类可读时间转换为Unix时间戳(以 毫秒为单位) ?我发现了很多类似的问题,但是没有找到这个特定的问题/答案。 问题答案: 在Python 3中,这可以分两个步骤完成: 将时间字符串转换为对象 将对象的时间戳乘以1000,以将其转换为毫秒。 例如这样: 输出: 接受您的时间字符串和格式字符串作为输入。该TIMESTRING(第一个参数)指定 什么 你真的想转换为对象。格式

  • 问题内容: 在python中,我得到了一个64位整数。该整数是通过采用几个不同的8位整数并将它们混搭为一个64位巨型整数而创建的。再次将它们分开是我的工作。 例如: 所以我想做的是获取我的源代码并返回一个长度为8的数组,其中数组中的每个int都是上面列出的int。 我打算使用,但老实说,阅读文档并不清楚我将如何实现。 问题答案: 在Python 2.x中,返回一个字节字符串。将其转换为整数数组很容