UnitBase#

class astropy.units.UnitBase[源代码]#

基类:object

单位的抽象基类。

单元上的大多数算术运算都是在这个基类中定义的。

不应该由用户直接实例化。

属性摘要

bases 

单位的基地。

cgs 

以CGS单位表示的单位。

physical_type 

在尺寸上与该单元兼容的物理类型。

powers 

单位基地的权力。

scale 

单位的规模。

si 

用SI单位表示的单位。

方法总结

compose([equivalencies, units, max_depth, ...])

返回表示给定单元的最简单的组合单元。

decompose([bases])

返回仅由不可约单位组成的单位对象。

find_equivalent_units([equivalencies, ...])

返回与所有类型相同的单位列表 self .

get_converter(other[, equivalencies])

创建一个函数,将值从此单位转换为另一个单位。

in_units(other[, value, equivalencies])

is_equivalent(other[, equivalencies])

检查该单位是否相当于 other .

is_unity \()

检查单位是否未缩放且无维度。

to(other[, value, equivalencies])

以指定的单位返回转换后的值。

to_string([format])

以给定格式将单位输出为字符串。

to_system \(系统)

将此单位转换为属于给定系统的单位。

属性文档

bases#

单位的基地。

cgs#

以CGS单位表示的单位。

physical_type#

在尺寸上与该单元兼容的物理类型。

返回:
PhysicalType

单元的物理类型的表示。

实例

>>> from astropy import units as u
>>> u.m.physical_type
PhysicalType('length')
>>> (u.m ** 2 / u.s).physical_type
PhysicalType({'diffusivity', 'kinematic viscosity'})

可以将物理类型与其他物理类型(包中推荐的)或字符串进行比较。

>>> area = (u.m ** 2).physical_type
>>> area == u.m.physical_type ** 2
True
>>> area == "area"
True

PhysicalType 对象可用于量纲分析。

>>> number_density = u.m.physical_type ** -3
>>> velocity = (u.m / u.s).physical_type
>>> number_density * velocity
PhysicalType('particle flux')
powers#

单位基地的权力。

scale#

单位的规模。

si#

用SI单位表示的单位。

方法文件

compose(equivalencies=[], units=None, max_depth=2, include_prefix_units=None)[源代码]#

返回表示给定单元的最简单的组合单元。由于单元可能有多个同样简单的组合,因此总是返回单元列表。

参数:
equivalencies : listtuplePYTHON:PYTHON列表:元组

要同时列出的等价对列表。看见 等价物 。该列表是对可能的全局缺省值的补充,例如, set_enabled_equivalencies 。使用 None 若要关闭所有等效项,请执行以下操作。

units : setUnit ,可选单位集,可选

如果没有提供,任何已知的单位都可以用来合成。否则, units 是包含要组成的单元的dict、module或sequence。

max_depth : int ,可选PYTHON:int,可选

组成复合单元时要使用的最大递归深度。

include_prefix_units : bool ,可选可选的布尔

什么时候? True ,在结果中包含前缀单位。默认为 True 如果序列被传递到 unitsFalse 否则。

返回:
units : listCompositeUnitPython:CompositeUnit列表

候选作文的列表。这些都将同样简单,但可能无法自动确定哪个候选人更好。

decompose(bases: Collection[UnitBase] = ()) UnitBase[源代码]#

返回仅由不可约单位组成的单位对象。

参数:
bases : sequenceUnitBase ,可选Python:UnitBase的序列,可选

分解成的基。如果没有提供,分解成任何不可还原的单位。当提供时,分解结果将只包含给定的单元。这将引发一个 UnitsError 如果不可能的话。

返回:
unitCompositeUnitCompositeUnit

只包含不可约单位的对象。

find_equivalent_units(equivalencies=[], units=None, include_prefix_units=False)[源代码]#

返回与所有类型相同的单位列表 self .

参数:
equivalencies : listtuplePYTHON:PYTHON列表:元组

要同时列出的等价对列表。看见 等价物 。任何给定的列表(包括空列表)都将取代可能生效的全局缺省值(由设置 set_enabled_equivalencies )

units : setUnit ,可选单位集,可选

如果未提供,则将搜索所有定义的单位以查找等效项。否则,可以是一个dict、module或sequence,其中包含要搜索等价性的单元。

include_prefix_units : bool ,可选可选的布尔

什么时候? True ,在结果中包含前缀单位。默认为 False .

返回:
units : listUnitBasePython:单元库列表

A list of unit objects that match u. A subclass of list (EquivalentUnitsList) is returned that pretty-prints the list of units when output.

get_converter(other, equivalencies=[])[源代码]#

创建一个函数,将值从此单位转换为另一个单位。

参数:
other : astropy:unit-like占星体:单位状

要转换为的单位。

equivalencies : listtuplePYTHON:PYTHON列表:元组

如果单位不能直接转换,可尝试的等价对列表。看见 等价物 。该列表是对可能的全局缺省值的补充,例如, set_enabled_equivalencies 。使用 None 若要关闭所有等效项,请执行以下操作。

返回:
func : callable()Python:Callable()

一个可调用的对象,采用类似数组的参数并返回从自我单位转换为他人单位的参数。

加薪:
UnitsError

如果单位无法相互转换。

笔记

该方法在内部使用 Quantity 转换为不同的单位。请注意,返回的函数接受并返回值,而不是量。

in_units(other, value=1.0, equivalencies=[])[源代码]#

自 7.0 版本弃用: in_units函数已被废弃,可能会在未来的版本中删除。 改为使用to()。

Alias to 为了与pynbody向后兼容。

is_equivalent(other, equivalencies=[])[源代码]#

检查该单位是否相当于 other .

参数:
other : Unit, str ,或 tuple单位、python:str或python:tuple

要转换为的单位。如果指定了一个单元元组,则如果该单元与元组中的任何一个匹配,则此方法将返回true。

equivalencies : listtuplePYTHON:PYTHON列表:元组

如果单位不能直接转换,可尝试的等价对列表。看见 等价物 。该列表是对可能的全局缺省值的补充,例如, set_enabled_equivalencies 。使用 None 若要关闭所有等效项,请执行以下操作。

返回:
bool
is_unity() bool[源代码]#

检查单位是否未缩放且无维度。

to(other, value=1.0, equivalencies=[])[源代码]#

以指定的单位返回转换后的值。

参数:
other : astropy:unit-like占星体:单位状

要转换为的单位。

value : intfloat ,或 scalar array_like ,可选PYTHON:INT、PYTHON:FLOAT或标量NAMPY:ARRAY_LIKE,可选

当前单位中要转换为指定单位的值。如果未提供,则默认为1.0

equivalencies : listtuplePYTHON:PYTHON列表:元组

如果单位不能直接转换,可尝试的等价对列表。看见 等价物 。该列表是对可能的全局缺省值的补充,例如, set_enabled_equivalencies 。使用 None 若要关闭所有等效项,请执行以下操作。

返回:
values : scalararray标量或数组

转换后的值。输入值序列作为numpy数组返回。

加薪:
UnitsError

如果单位不一致

to_string(format: type[Base] | str | None = None, **kwargs) str[源代码]#

以给定格式将单位输出为字符串。

参数:
format : astropy.units.format.Base subclass or strNoneastropy.units. form.Base subtitle或pPython:stra或pPython:无

格式或格式化程序类的名称。 如果未提供(或 None ),默认为通用格式。

**kwargs

转发到格式化程序的进一步选项。当前认可的是 fraction ,可以采用下列值:

  • False :按原样显示负功率的单位底座;

  • ‘inline’或 True :使用单行分数;

  • “多行”:使用多行分数(仅适用于“latex”、“console”和“unicode”格式;对于其他格式,使用“inline”分数)。

加薪:
TypeError

如果 format 是错误的类型。

ValueError

如果 formatfraction 都不被认可。

实例

>>> import astropy.units as u
>>> kms = u.Unit('km / s')
>>> kms.to_string()  # Generic uses fraction='inline' by default
'km / s'
>>> kms.to_string('latex')  # Latex uses fraction='multiline' by default
'$\\mathrm{\\frac{km}{s}}$'
>>> print(kms.to_string('unicode', fraction=False))
km s⁻¹
>>> print(kms.to_string('unicode', fraction='inline'))
km / s
>>> print(kms.to_string('unicode', fraction='multiline'))
km
──
s
to_system(system)[源代码]#

将此单位转换为属于给定系统的单位。

由于可能有多个结果,因此总是返回一个列表。

参数:
system : modulePYTHON:模块

定义单元系统的模块。常用的有 astropy.units.siastropy.units.cgs .

要使用您自己的模块,它必须包含单元对象和一个名为 bases 包含系统的基本单位。

返回:
units : listCompositeUnitPython:CompositeUnit列表

尝试从一开始对更简单的单元进行排序(参见示例)。

实例

>>> import astropy.units as u
>>> (u.N / u.m**2).to_system(u.si)  # preference for simpler units
[Unit("Pa"), Unit("N / m2"), Unit("J / m3")]
>>> u.Pa.to_system(u.cgs)
[Unit("10 Ba"), Unit("10 P / s")]
>>> u.Ba.to_system(u.si)
[Unit("0.1 Pa"), Unit("0.1 N / m2"), Unit("0.1 J / m3")]
>>> (u.AU/u.yr).to_system(u.cgs)  # preference for base units
[Unit("474047 cm / s"), Unit("474047 Gal s")]
>>> (u.m / u.s**2).to_system(u.cgs)
[Unit("100 cm / s2"), Unit("100 Gal")]