如何记录具有尺寸的单位?
How to take log of a unit with dimensions?
我有一个带开尔文单位的温度变量。我需要用 np.log10
获取它的 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
您可以使用 .value
删除维度:
>>> np.log10(temp.value)
3.7781512503836434
或除以u.K
使其无量纲:
>>> np.log10(temp / u.K)
<Quantity 3.7781512503836434>
您还可以使用 to_value()
获取不带单位的实际值
Signature: 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
这还提供了在某些时候需要时更改单位的灵活性!
我有一个带开尔文单位的温度变量。我需要用 np.log10
获取它的 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
您可以使用 .value
删除维度:
>>> np.log10(temp.value)
3.7781512503836434
或除以u.K
使其无量纲:
>>> np.log10(temp / u.K)
<Quantity 3.7781512503836434>
您还可以使用 to_value()
Signature:
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
这还提供了在某些时候需要时更改单位的灵活性!