我有一个带开尔文单位的温度变量。我需要将log10
与np.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
答案 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>