数量

class astropy.units.Quantity(value, unit=None, dtype=None, copy=True, order=None, subok=False, ndmin=0)[源代码]

基类:numpy.ndarray

A Quantity 表示具有某个关联单位的数字。

另请参见:https://docs.astropy.org/en/stable/units/quantity.html

参数
价值 :数字, ndarrayQuantity 对象(序列),str数,

这个量的数值,用单位表示。如果 Quantity 或它们的序列(或任何其他具有 unit 属性),创建一个新的 Quantity 对象,转换为 unit 单位按需要。如果是字符串,则将其转换为数字或 Quantity ,取决于是否有一个单元。

unitUnitBase 实例,strUnitBase实例,str

表示与输入值相关联的单位的对象。一定是 UnitBase 对象或可由 units 包裹。

dtype~数字.dtype,可选

将保存该值的结果Numpy数组或标量的数据类型。如果未提供,则根据输入确定,但默认情况下,任何整数和(非数量)对象输入都将转换为浮点。

copy可选的布尔

如果 True (default), then the value is copied. Otherwise, a copy will only be made if _ _如果值是嵌套序列,或者需要副本来满足显式给定的 ``dtype . (在 False 选项主要用于内部使用,以便在已知已生成副本的情况下加快初始化。小心使用。)

order'C'、'F'、'A',可选

指定数组的顺序。如 array . 如果输入是 Quantitycopy=False .

subok可选的布尔

如果 False (默认),返回的数组将被强制为 Quantity . 否则, Quantity 子类将被传递,或者将使用适合于单元的子类(例如 Dex 对于 u.dex(u.AA)

ndmin可选的

指定结果数组应具有的最小维数。它们将根据需要根据形状预先设置,以满足此要求。如果输入是 Quantitycopy=False .

加薪
TypeError

如果提供的值不是Python数字类型。

TypeError

如果提供的单位不是 Unit 对象或可解析字符串单元。

笔记

也可以通过将数字或数组与 Unit . 看到了吗https://docs.astropy.org/en/latest/units/

属性摘要

cgs 

返回当前 Quantity 具有CGS单元的实例。

equivalencies 

单位转换期间默认应用的等效项列表。

flat 

数量数组上的一维迭代器。

info 

用于存储诸如名称、描述、格式等元信息的容器。

isscalar 

如果 value 这个量的值是标量,如果是类似数组的对象,则为False。

si 

返回当前 Quantity 使用国际单位制的实例。

unit 

A UnitBase 表示此量的单位的对象。

value 

此实例的数值。

方法总结

all \ [axis, out, keepdims] )

如果所有元素的计算结果都为true,则返回true。

any \ [axis, out, keepdims] )

如果的任何元素 a 计算为真。

argmax \ [axis, out] )

返回给定轴上最大值的索引。

argmin \ [axis, out] )

沿给定轴返回最小值的索引 a .

argsort \ [axis, kind, order] )

返回将对此数组进行排序的索引。

choose [选择] [, out, mode] )

使用索引数组从一组选项中构造新数组。

decompose \ [bases] )

生成新的 Quantity 单位分解了。

diff \ [n, axis] )

dot (b) [, out] )

两个数组的点积。

dump \(文件)

将数组的pickle转储到指定的文件。

dumps ()

以字符串形式返回数组的pickle。

ediff1d \ [to_end, to_begin] )

fill 值(值)

用标量值填充数组。

insert \(目标,值[, axis] )

在给定索引之前沿给定轴插入值,并返回一个新的 Quantity 对象。

item * ARGs)

将数组的元素复制到标准的python标量并返回它。

itemset * ARGs)

将标量插入数组(如果可能,将标量转换为数组的dtype)

mean \ [axis, dtype, out, keepdims] )

返回沿给定轴的数组元素的平均值。

nansum \ [axis, out, keepdims] )

put \(索引,值[, mode] )

集合 a.flat[n] = values[n] 为了所有 n 在索引中。

round \ [decimals, out] )

返回 a 每个元素四舍五入到给定的小数位数。

searchsorted (V) [, side, sorter] )

查找应在a中插入v元素以保持顺序的索引。

std \ [axis, dtype, out, ddof, keepdims] )

返回数组元素沿给定轴的标准偏差。

take [指数] [, axis, out, mode] )

返回由以下元素组成的数组 a 在给定的指数上。

to \(单位[, equivalencies, copy] )

返回一个新的 Quantity 具有指定单位的对象。

to_string \ [unit, precision, format, subfmt] )

生成数量及其单位的字符串表示形式。

to_value \ [unit, equivalencies] )

数值,可能以不同的单位表示。

tobytes \ [order] )

构造包含数组中原始数据字节的python字节。

tofile (FID) [, sep, format] )

将数组以文本或二进制形式写入文件(默认)。

tolist ()

作为数组返回 a.ndim -Python标量的深度嵌套列表。

tostring \ [order] )

的兼容性别名 tobytes ,行为完全相同。

trace \ [offset, axis1, axis2, dtype, out] )

沿数组的对角线返回和。

var \ [axis, dtype, out, ddof, keepdims] )

返回数组元素沿给定轴的方差。

属性文档

cgs

返回当前 Quantity 具有CGS单元的实例。结果对象的值将被缩放。

equivalencies

单位转换期间默认应用的等效项列表。

flat

数量数组上的一维迭代器。

返回一个 QuantityIterator 实例,其行为与 flatiter 实例返回者 flat ,与Python的内置迭代器对象类似,但不是其子类。

info

用于存储诸如名称、描述、格式等元信息的容器。当对象用作表中的mixin列时,这是必需的,但也可以作为存储元信息的通用方法。

isscalar

如果 value 这个量的值是标量,如果是类似数组的对象,则为False。

注解

这与 numpy.isscalar 在那里面 numpy.isscalar 对于零维数组返回False(例如。 np.array(1) ),而这对于数量是正确的,因为数量不能代表真正的numpy标量。

si

返回当前 Quantity 使用国际单位制的实例。结果对象的值将被缩放。

unit

A UnitBase 表示此量的单位的对象。

value

此实例的数值。

参见

to_value

取给定单位的数值。

方法文件

all(axis=None, out=None, keepdims=False)[源代码]

如果所有元素的计算结果都为true,则返回true。

参照 numpy.all 完整文件。

参见

numpy.all

等效函数

any(axis=None, out=None, keepdims=False)[源代码]

如果的任何元素 a 计算为真。

参照 numpy.any 完整文件。

参见

numpy.any

等效函数

argmax(axis=None, out=None)[源代码]

返回给定轴上最大值的索引。

参照 numpy.argmax 完整文件。

参见

numpy.argmax

等效函数

argmin(axis=None, out=None)[源代码]

沿给定轴返回最小值的索引 a .

参照 numpy.argmin 有关详细文档。

参见

numpy.argmin

等效函数

argsort(axis=- 1, kind=None, order=None)[源代码]

返回将对此数组进行排序的索引。

参照 numpy.argsort 完整文件。

参见

numpy.argsort

等效函数

choose(choices, out=None, mode='raise')[源代码]

使用索引数组从一组选项中构造新数组。

参照 numpy.choose 完整文件。

参见

numpy.choose

等效函数

decompose(bases=[])[源代码]

生成新的 Quantity 单位分解了。分解单元中只有不可约的单元(请参见 astropy.units.UnitBase.decompose

参数
basesUnitBase序列,可选

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

返回
newqQuantity数量

一个新的物体,与这个量相等,单位被分解。

diff(n=1, axis=- 1)[源代码]
dot(b, out=None)[源代码]

两个数组的点积。

参照 numpy.dot 完整文件。

参见

numpy.dot

等效函数

实例

>>> a = np.eye(2)
>>> b = np.ones((2, 2)) * 2
>>> a.dot(b)
array([[2.,  2.],
       [2.,  2.]])

此数组方法可以方便地链接:

>>> a.dot(b).dot(b)
array([[8.,  8.],
       [8.,  8.]])
dump(file)[源代码]

将数组的pickle转储到指定的文件。可以使用pickle.load或numpy.load读取数组。

参数
filestr或Path

命名转储文件的字符串。

在 1.17.0 版更改: pathlib.Path 现在已接受对象。

dumps()[源代码]

以字符串形式返回数组的pickle。pickle.loads或numpy.loads将把字符串转换回数组。

参数
None
ediff1d(to_end=None, to_begin=None)[源代码]
fill(value)[源代码]

用标量值填充数组。

参数
value标量

所有元素 a 将分配此值。

实例

>>> a = np.array([1, 2])
>>> a.fill(0)
>>> a
array([0, 0])
>>> a = np.empty(2)
>>> a.fill(1)
>>> a
array([1.,  1.])
insert(obj, values, axis=None)[源代码]

在给定索引之前沿给定轴插入值,并返回一个新的 Quantity 对象。

这是一个薄薄的包裹 numpy.insert 功能。

参数
objint、slice或int序列

定义一个或多个索引的对象, values 插入。

valuesarray_like

要插入的值。如果 values 与数量不同, values 转换为匹配类型。 values 其形状应使其能够适当地广播 values 必须与此数量一致。

axis可选的

插入轴 values . 如果 axis 如果为“无”,则在插入之前将数量数组展平。

返回
outQuantity数量

数量副本 values 插入。请注意,插入操作没有进行到位:将返回一个新的quantity数组。

实例

>>> import astropy.units as u
>>> q = [1, 2] * u.m
>>> q.insert(0, 50 * u.cm)
<Quantity [ 0.5,  1.,  2.] m>
>>> q = [[1, 2], [3, 4]] * u.m
>>> q.insert(1, [10, 20] * u.m, axis=0)
<Quantity [[  1.,  2.],
           [ 10., 20.],
           [  3.,  4.]] m>
>>> q.insert(1, 10 * u.m, axis=1)
<Quantity [[  1., 10.,  2.],
           [  3., 10.,  4.]] m>
item(*args)[源代码]

将数组的元素复制到标准的python标量并返回它。

参数
*args参数(变量数和类型)
  • 无:在本例中,该方法仅适用于具有一个元素的数组 (a.size == 1 ,将哪个元素复制到标准的python标量对象中并返回。

  • int_type:此参数被解释为数组中的平面索引,指定要复制和返回的元素。

  • int_类型的元组:与单个int_类型参数相同的函数,只是该参数被解释为数组中的nd索引。

返回
z标准python标量对象

数组中指定元素的副本,作为适当的python标量

笔记

当数据类型为 a 是longdouble或clongdouble,item()返回标量数组对象,因为没有不会丢失信息的可用python标量。void数组为item()返回缓冲区对象,除非定义了字段,在这种情况下返回元组。

item 非常类似于 [args] ,除了返回标准的python标量而不是数组标量。这对于加快对数组元素的访问以及使用Python优化的数学对数组元素执行算术操作非常有用。

实例

>>> np.random.seed(123)
>>> x = np.random.randint(9, size=(3, 3))
>>> x
array([[2, 2, 6],
       [1, 3, 6],
       [1, 0, 1]])
>>> x.item(3)
1
>>> x.item(7)
0
>>> x.item((0, 1))
2
>>> x.item((2, 2))
1
itemset(*args)[源代码]

将标量插入数组(如果可能,将标量转换为数组的dtype)

必须至少有一个参数,并将最后一个参数定义为 item . 然后, a.itemset(*args) 等于但比 a[args] = item . 该项应为标量值,并且 args 必须选择数组中的单个项 a .

参数
*args争论

如果有一个参数:标量,只在case中使用 a 尺寸是1号。如果两个参数:最后一个参数是要设置的值并且必须是标量,则第一个参数指定单个数组元素位置。它不是int就是tuple。

笔记

与索引语法相比, itemset 为将标量放入 ndarray ,如果必须这样做。然而,一般来说,这是不鼓励的:除了其他问题,它使代码的外观复杂化。此外,使用时 itemset (和 item )在循环内部,请确保将方法分配给局部变量,以避免在每个循环迭代中查找属性。

实例

>>> np.random.seed(123)
>>> x = np.random.randint(9, size=(3, 3))
>>> x
array([[2, 2, 6],
       [1, 3, 6],
       [1, 0, 1]])
>>> x.itemset(4, 0)
>>> x.itemset((2, 2), 9)
>>> x
array([[2, 2, 6],
       [1, 0, 6],
       [1, 0, 9]])
mean(axis=None, dtype=None, out=None, keepdims=False)[源代码]

返回沿给定轴的数组元素的平均值。

参照 numpy.mean 完整文件。

参见

numpy.mean

等效函数

nansum(axis=None, out=None, keepdims=False)[源代码]
put(indices, values, mode='raise')[源代码]

集合 a.flat[n] = values[n] 为了所有 n 在索引中。

参照 numpy.put 完整文件。

参见

numpy.put

等效函数

round(decimals=0, out=None)[源代码]

返回 a 每个元素四舍五入到给定的小数位数。

参照 numpy.around 完整文件。

参见

numpy.around

等效函数

searchsorted(v, side='left', sorter=None)[源代码]

查找应在a中插入v元素以保持顺序的索引。

有关完整文档,请参见 numpy.searchsorted

参见

numpy.searchsorted

等效函数

std(axis=None, dtype=None, out=None, ddof=0, keepdims=False)[源代码]

返回数组元素沿给定轴的标准偏差。

参照 numpy.std 完整文件。

参见

numpy.std

等效函数

take(indices, axis=None, out=None, mode='raise')[源代码]

返回由以下元素组成的数组 a 在给定的指数上。

参照 numpy.take 完整文件。

参见

numpy.take

等效函数

to(unit, equivalencies=[], copy=True)[源代码]

返回一个新的 Quantity 具有指定单位的对象。

参数
unitUnitBase 实例,strUnitBase实例,str

表示要转换为的单位的对象。一定是 UnitBase 对象或可由 units 包裹。

equivalencies等价对列表,可选

如果单位不可直接转换时要尝试的等价对列表。参见 等价物 . 如果没有提供或 [] ,将使用类默认等效项(对于 Quantity ,但可以为子类设置)如果 None ,则不会应用任何等效项,甚至不会在全局或上下文中应用任何集。

copy可选的布尔

如果 True (默认),然后复制该值。否则,只有在必要时才会制作副本。

参见

to_value

取给定单位的数值。

to_string(unit=None, precision=None, format=None, subfmt=None)[源代码]

生成数量及其单位的字符串表示形式。

此函数的行为可以通过 numpy.set_printoptions 函数及其各种关键字。唯一的例外是 threshold 关键字,通过 [units.quantity] 配置项 latex_array_threshold . 这是分开处理的,因为numpy默认值1000对于大多数浏览器来说太大了。

参数
unitUnitBase 可选UnitBase,可选

指定单位。如果未提供,将使用用于初始化数量的单位。

precision数字,可选

十进制精度的级别。如果 None ,或未提供,则将根据NumPy打印选项确定。

format可选的STR

结果的格式。如果未提供,则返回未修饰的字符串。支持的值包括:

  • “latex”:返回latex格式的字符串

subfmt可选的STR

结果的子格式。目前,只用于format=“latex”。支持的值包括:

  • “inline”:使用 $ ... $ 作为分隔符。

  • “显示”:使用 $\displaystyle ... $ 作为分隔符。

返回
lstr

包含此数量内容的字符串

to_value(unit=None, equivalencies=[])[源代码]

数值,可能以不同的单位表示。

参数
unitUnitBase 实例或str,可选UnitBase实例或str,可选

给出数值的单位。如果不给予或 None ,使用当前单位。

equivalencies等价对列表,可选

如果机组不能直接转换,则尝试使用的等效对列表(请参阅 等价物 ). 如果未提供或 [] ,将使用类默认等效项(对于 Quantity ,但可以为子类设置)。如果 None ,则不会应用任何等效项,甚至不会在全局或上下文中应用任何集。

返回
价值ndarray 或标量ndarray或scalar

以指定单位表示的值。对于数组,如果不需要单位转换,这将是一个数据视图。

参见

to

在不同的单元中获取新实例。

tobytes(order='C')[源代码]

构造包含数组中原始数据字节的python字节。

构造显示数据内存原始内容副本的python字节。bytes对象可以“c”或“fortran”或“any”顺序生成(默认为“c”-顺序)。任何“order”表示C顺序,除非设置了数组中的F_连续标志,在这种情况下,它表示“fortran”顺序。

1.9.0 新版功能.

参数
order'C'、'F'、无,可选

多维数组的数据顺序:C、Fortran或与原始数组相同。

返回
s字节

显示的python字节的副本 a 原始数据。

实例

>>> x = np.array([[0, 1], [2, 3]], dtype='<u2')
>>> x.tobytes()
b'\x00\x00\x01\x00\x02\x00\x03\x00'
>>> x.tobytes('C') == x.tobytes()
True
>>> x.tobytes('F')
b'\x00\x00\x02\x00\x01\x00\x03\x00'
tofile(fid, sep='', format='%s')[源代码]

将数组以文本或二进制形式写入文件(默认)。

数据总是以“C”顺序写入,与 a . 此方法生成的数据可以使用函数fromfile()进行恢复。

参数
fid文件、str或Path

打开的文件对象或包含文件名的字符串。

在 1.17.0 版更改: pathlib.Path 现在已接受对象。

sepSTR

用于文本输出的数组项之间的分隔符。如果“”(空),则写入二进制文件,相当于 file.write(a.tobytes()) .

formatSTR

文本文件输出的格式字符串。数组中的每个条目都被格式化为文本,首先将其转换为最接近的python类型,然后使用“format%”%item。

笔记

这是一个方便快速存储阵列数据的功能。由于丢失了有关endianness和precision的信息,因此对于打算在具有不同endianness的计算机之间存档数据或传输数据的文件,此方法不是一个好的选择。其中的一些问题可以通过将数据输出为文本文件来克服,而代价是速度和文件大小。

当fid是一个文件对象时,数组内容直接写入该文件,绕过文件对象的 write 方法。因此,tofile不能与支持压缩的文件对象(例如,gzip文件)或不支持的类似文件的对象一起使用。 fileno() (例如,bytesio)。

tolist()[源代码]

作为数组返回 a.ndim -Python标量的深度嵌套列表。

以(嵌套的)Python列表的形式返回数组数据的副本。数据项通过 item 功能。

如果 a.ndim 如果是0,那么由于嵌套列表的深度是0,那么它根本就不是一个列表,而是一个简单的Python标量。

参数
none
返回
y对象,或对象列表,或对象列表,或。。。

数组元素的可能嵌套列表。

笔记

数组可以通过 a = np.array(a.tolist()) ,尽管有时可能会失去精度。

实例

对于一维阵列, a.tolist() 几乎和 list(a) 除了 tolist 将numpy标量更改为Python标量:

>>> a = np.uint32([1, 2])
>>> a_list = list(a)
>>> a_list
[1, 2]
>>> type(a_list[0])
<class 'numpy.uint32'>
>>> a_tolist = a.tolist()
>>> a_tolist
[1, 2]
>>> type(a_tolist[0])
<class 'int'>

另外,对于二维阵列, tolist 递归应用:

>>> a = np.array([[1, 2], [3, 4]])
>>> list(a)
[array([1, 2]), array([3, 4])]
>>> a.tolist()
[[1, 2], [3, 4]]

此递归的基本情况是0D数组:

>>> a = np.array(1)
>>> list(a)
Traceback (most recent call last):
  ...
TypeError: iteration over a 0-d array
>>> a.tolist()
1
tostring(order='C')[源代码]

的兼容性别名 tobytes ,行为完全相同。

尽管它的名字,它还是回来了 bytesstr S

1.19.0 版后已移除.

trace(offset=0, axis1=0, axis2=1, dtype=None, out=None)[源代码]

沿数组的对角线返回和。

参照 numpy.trace 完整文件。

参见

numpy.trace

等效函数

var(axis=None, dtype=None, out=None, ddof=0, keepdims=False)[源代码]

返回数组元素沿给定轴的方差。

参照 numpy.var 完整文件。

参见

numpy.var

等效函数