如何记录具有尺寸的单位?

时间:2018-01-26 23:06:51

标签: python numpy astropy

我有一个带开尔文单位的温度变量。我需要将log10np.log10一起使用,但如果数字有维,则无效。从变量中删除维度的最简单方法是什么,以便我可以记录它?

实施例

import astropy.units as u
import numpy as np

temp = 6000 * u.K
np.log10(temp)

显示错误消息:

UnitTypeError: Can only apply 'log10' function to dimensionless quantities

2 个答案:

答案 0 :(得分:2)

您还可以使用to_value()

获取没有单位的实际值
  

签名:to_value(unit=None, equivalencies=[])

In [33]: temp.to_value()
Out[33]: 6000.0

In [34]: np.log10(temp.to_value())
Out[34]: 3.7781512503836439

如果需要,可以灵活地更改单位!

答案 1 :(得分:1)

您可以使用.value

删除维度
>>> np.log10(temp.value)
3.7781512503836434

或除以u.K以使其无量纲:

>>> np.log10(temp / u.K)
<Quantity 3.7781512503836434>