StructuredUnit#

class astropy.units.StructuredUnit(units, names=None)[源代码]#

基类:object

结构数量单位的容器。

参数:
units : astropy:unit-liketupleastropy:unit-like ,或 StructuredUnitAstopy:类似单位的,巨型的:AstPy的元组:类似单位的,或结构单位

元组可以嵌套。如果一个 StructuredUnit 除非请求不同的名称,否则它将原封不动地返回。

names : tuplestrtuple 或列表; dtype ;或 StructuredUnit ,可选PYTHON:PYTHON的元组:STR、PYTHON:TUPLE或LIST;DTYPE;或STRIPTIREDUNIT,可选

单位的字段名称,可能是嵌套的。可以从结构化的 dtype 或者另一个 StructuredUnit 。对于嵌套的元组,默认情况下,较高条目的名称将是较低级别名称的串联。可以传入一个列表,其中包含较高级别的名称和较低级别名称的元组,以避免这种情况。对于元组,不必给出所有级别;对于任何未传入的级别,将使用默认字段名‘f0’、‘f1’等。

笔记

建议使用以下方法间接初始化该类 Unit 。例如, u.Unit('AU,AU/day')

当与结构化数组组合以产生结构化的 Quantity ,数组字段名称将优先。一般说来,传入 names 仅当该单元以未连接到 Quantity 人们需要访问它的字段。

实例

使用多种方法初始化 StructuredUnit **

>>> import astropy.units as u
>>> su = u.Unit('(AU,AU/day),yr')
>>> su
Unit("((AU, AU / d), yr)")
>>> su.field_names
(['f0', ('f0', 'f1')], 'f1')
>>> su['f1']
Unit("yr")
>>> su2 = u.StructuredUnit(((u.AU, u.AU/u.day), u.yr), names=(('p', 'v'), 't'))
>>> su2 == su
True
>>> su2.field_names
(['pv', ('p', 'v')], 't')
>>> su3 = u.StructuredUnit((su2['pv'], u.day), names=(['p_v', ('p', 'v')], 't'))
>>> su3.field_names
(['p_v', ('p', 'v')], 't')
>>> su3.keys()
('p_v', 't')
>>> su3.values()
(Unit("(AU, AU / d)"), Unit("d"))

结构化单位与常规单位共享大多数方法:

>>> su.physical_type
((PhysicalType('length'), PhysicalType({'speed', 'velocity'})), PhysicalType('time'))
>>> su.si
Unit("((1.49598e+11 m, 1.73146e+06 m / s), 3.15576e+07 s)")

属性摘要

cgs 

这个 StructuredUnit 实例,单位为CGS。

field_names 

可能是部件的字段名称的嵌套元组。

physical_type 

所有领域的物理类型。

si 

这个 StructuredUnit 实例,以国际单位表示。

方法总结

decompose([bases])

这个 StructuredUnit 仅由不可约单位组成的。

is_equivalent(other[, equivalencies])

True 如果所有字段都等同于另一个的字段。

items \()

keys \()

to(other[, value, equivalencies])

返回转换为指定单位的值。

to_string([format])

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

values \()

属性文档

cgs#

这个 StructuredUnit 实例,单位为CGS。

field_names#

可能是部件的字段名称的嵌套元组。

physical_type#

所有领域的物理类型。

si#

这个 StructuredUnit 实例,以国际单位表示。

方法文件

decompose(bases={})[源代码]#

这个 StructuredUnit 仅由不可约单位组成的。

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

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

返回:
StructuredUnit

每个域的单位仅包含不可约单位。

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

True 如果所有字段都等同于另一个的字段。

参数:
otherStructuredUnitStructuredUnit

要与之比较的结构化单元,或者可以对其进行初始化的对象。

equivalencies : listtuple ,可选PYTHON:PYTHON列表:元组,可选

如果单位不能直接转换,可尝试的等价对列表。看见 等价物 。该列表将应用于所有字段。

返回:
bool
items()[源代码]#
keys()[源代码]#
to(other, value=<no value>, equivalencies=[])[源代码]#

返回转换为指定单位的值。

参数:
otherStructuredUnitStructuredUnit

要转换到的单位。如有必要,将被转换为 StructuredUnit 使用的数据类型 value

value : array_like ,可选NumPy:ARRAY_LIKE,可选

当前单位中要转换为指定单位的值。如果是序列,则第一个元素必须具有正确类型的条目以表示所有元素(例如,不具有 float 其他元素具有 complex )。如果没有给出,则假定在所有字段中都有1。

equivalencies : listtuple ,可选PYTHON:PYTHON列表:元组,可选

如果单位不可直接转换时要尝试的等价对列表。参见 等价物 . 此列表是对可能的全局默认设置的补充,例如。, set_enabled_equivalencies . 使用 None 关闭所有等效项。

返回:
values : scalararray标量或数组

转换值。

加薪:
UnitsError

如果单位不一致

to_string(format='generic')[源代码]#

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

单位之间用逗号隔开。

参数:
format : astropy.units.format.Base instance or strAsterpy.units.Form.Base实例或python:str

格式或格式设置程序对象的名称。如果未提供,则默认为通用格式。

笔记

结构化单元可以写入所有格式,但只能使用‘Generic’重新读取。

values()[源代码]#