数量¶
- class astropy.units.Quantity(value, unit=None, dtype=None, copy=True, order=None, subok=False, ndmin=0)[源代码]¶
基类:
ndarray
A
Quantity
表示具有某个关联单位的数字。另请参见:https://docs.astropy.org/en/stable/units/quantity.html
- 参数
- 价值 :编号,
ndarray
,Quantity
(序列)或字符串数, 这个量的数值,用单位表示。如果
Quantity
或它们的序列(或任何其他具有unit
属性),创建一个新的Quantity
对象,转换为unit
单位按需要。如果是字符串,则将其转换为数字或Quantity
,取决于是否有一个单元。- unit类单元
- 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',可选
- subok可选的布尔
如果
False
(默认),返回的数组将被强制为Quantity
. 否则,Quantity
子类将被传递,或者将使用适合于单元的子类(例如Dex
对于u.dex(u.AA)
)- ndmin可选的
指定结果数组应具有的最小维数。它们将根据需要根据形状预先设置,以满足此要求。如果输入是
Quantity
和copy=False
.
- 价值 :编号,
- 加薪
- TypeError
如果提供的值不是Python数字类型。
- TypeError
如果提供的单位不是
Unit
对象或可解析字符串单元。
笔记
也可以通过将数字或数组与
Unit
. 看到了吗https://docs.astropy.org/en/latest/units/除非
dtype
参数,则整数或(非数量)对象输入将转换为float
默认情况下。属性摘要
返回当前
Quantity
具有CGS单元的实例。单位转换期间默认应用的等效项列表。
数量数组上的一维迭代器。
用于存储诸如名称、描述、格式等元信息的容器。
如果
value
这个量的值是标量,如果是类似数组的对象,则为False。返回当前
Quantity
使用国际单位制的实例。A
UnitBase
表示此量的单位的对象。此实例的数值。
方法总结
all
([axis, out, keepdims, where])如果所有元素的计算结果都为true,则返回true。
any
([axis, out, keepdims, where])如果的任何元素
a
计算为真。argmax
([axis, out, keepdims])返回给定轴上最大值的索引。
argmin
([axis, out, keepdims])返回沿给定轴的最小值的索引。
argsort
([axis, kind, order])返回将对此数组进行排序的索引。
choose
(choices[, out, mode])使用索引数组从一组选项中构造新数组。
decompose
([bases])生成新的
Quantity
单位分解了。diff
([n, axis])dot
(b[, out])dump
\(文件)将数组的pickle转储到指定的文件。
dumps
\()以字符串形式返回数组的pickle。
ediff1d
([to_end, to_begin])fill
\(值)用标量值填充数组。
insert
(obj, values[, axis])在给定索引之前沿给定轴插入值,并返回一个新的
Quantity
对象。item
(*args)将数组的元素复制到标量并返回。
itemset
(*args)将标量插入数组(如果可能,将标量转换为数组的dtype)
mean
([axis, dtype, out, keepdims, where])返回沿给定轴的数组元素的平均值。
nansum
([axis, out, keepdims, initial, where])put
(indices, values[, mode])集合
a.flat[n] = values[n]
为了所有n
在索引中。round
([decimals, out])返回
a
每个元素四舍五入到给定的小数位数。searchsorted
(v[, side, sorter])查找应在a中插入v元素以保持顺序的索引。
std
([axis, dtype, out, ddof, keepdims, where])返回数组元素沿给定轴的标准偏差。
take
(indices[, axis, out, mode])返回由以下元素组成的数组
a
在给定的指数上。to
(unit[, 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, where])返回数组元素沿给定轴的方差。
属性文档
- equivalencies¶
单位转换期间默认应用的等效项列表。
- info¶
用于存储诸如名称、描述、格式等元信息的容器。当对象用作表中的mixin列时,这是必需的,但也可以作为存储元信息的通用方法。
- isscalar¶
如果
value
这个量的值是标量,如果是类似数组的对象,则为False。备注
这与
numpy.isscalar
在那里面numpy.isscalar
对于零维数组返回False(例如。np.array(1)
),而这对于数量是正确的,因为数量不能代表真正的numpy标量。
方法文件
- all(axis=None, out=None, keepdims=False, *, where=True)[源代码]¶
如果所有元素的计算结果都为true,则返回true。
参照
numpy.all
完整文件。参见
numpy.all
等效函数
- any(axis=None, out=None, keepdims=False, *, where=True)[源代码]¶
如果的任何元素
a
计算为真。参照
numpy.any
完整文件。参见
numpy.any
等效函数
- argmax(axis=None, out=None, *, keepdims=False)[源代码]¶
返回给定轴上最大值的索引。
参照
numpy.argmax
完整文件。参见
numpy.argmax
等效函数
- argmin(axis=None, out=None, *, keepdims=False)[源代码]¶
返回沿给定轴的最小值的索引。
参照
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
)- 参数
- 基地 :顺序
UnitBase
,可选顺序 分解成的基。如果没有提供,分解成任何不可还原的单位。当提供时,分解结果将只包含给定的单元。这将引发一个
UnitsError
如果不可能的话。
- 基地 :顺序
- 返回
- newq :
Quantity
数量 一个新的物体,与这个量相等,单位被分解。
- newq :
- dump(file)[源代码]¶
将数组的pickle转储到指定的文件。可以使用pickle.load或numpy.load读取数组。
- 参数
- filestr或Path
命名转储文件的字符串。
在 1.17.0 版本发生变更:
pathlib.Path
现在已接受对象。
- 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
功能。- 参数
- obj整型、整型切片或整型序列
定义一个或多个索引的对象,
values
插入。- values类似阵列的
要插入的值。如果
values
与数量不同,values
转换为匹配类型。values
其形状应使其能够适当地广播values
必须与此数量一致。- axis可选的
插入轴
values
. 如果axis
如果为“无”,则在插入之前将数量数组展平。
- 返回
- out :
Quantity
数量 数量副本
values
插入。请注意,插入操作没有进行到位:将返回一个新的quantity数组。
- out :
实例
>>> 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>
- 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, *, where=True)[源代码]¶
返回沿给定轴的数组元素的平均值。
参照
numpy.mean
完整文件。参见
numpy.mean
等效函数
- 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
参见
- std(axis=None, dtype=None, out=None, ddof=0, keepdims=False, *, where=True)[源代码]¶
返回数组元素沿给定轴的标准偏差。
参照
numpy.std
完整文件。参见
numpy.std
等效函数
- take(indices, axis=None, out=None, mode='raise')[源代码]¶
返回由以下元素组成的数组
a
在给定的指数上。参照
numpy.take
完整文件。参见
numpy.take
等效函数
- to_string(unit=None, precision=None, format=None, subfmt=None)[源代码]¶
生成数量及其单位的字符串表示形式。
此函数的行为可以通过
numpy.set_printoptions
函数及其各种关键字。唯一的例外是threshold
关键字,通过[units.quantity]
配置项latex_array_threshold
. 这是分开处理的,因为numpy默认值1000对于大多数浏览器来说太大了。- 参数
- unit单元式,可选
指定单位。如果未提供,将使用用于初始化数量的单位。
- precision数字,可选
十进制精度的级别。如果
None
,或未提供,则将根据NumPy打印选项确定。- format可选的STR
结果的格式。如果未提供,则返回未修饰的字符串。支持的值包括:
“latex”:返回latex格式的字符串
‘LaTeX_Inline’:返回使用负指数而不是分数的LaTeX格式的字符串
- subfmt可选的STR
结果的子格式。目前,仅用于
format='latex'
和format='latex_inline'
。支持的值包括:“inline”:使用
$ ... $
作为分隔符。“显示”:使用
$\displaystyle ... $
作为分隔符。
- 返回
- STR
包含此数量内容的字符串
- to_value(unit=None, equivalencies=[])[源代码]¶
数值,可能以不同的单位表示。
- 参数
- 返回
- valuendarray或scalar
以指定单位表示的值。对于数组,如果不需要单位转换,这将是一个数据视图。
参见
to
在不同的单元中获取新实例。
- tobytes(order='C')[源代码]¶
构造包含数组中原始数据字节的python字节。
构造Python字节,显示数据内存原始内容的副本。默认情况下,Bytes对象以C顺序生成。此行为由
order
参数。在 1.9.0 版本加入.
- 参数
- order'C'、'F'、'A',可选
控制Bytes对象的内存布局。“C”表示C-订单,“F”表示F-订单,“A”(缩写为 Any )表示“F”,如果
a
是Fortran连续的,否则是‘C’。默认值为“C”。
- 返回
- 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
- trace(offset=0, axis1=0, axis2=1, dtype=None, out=None)[源代码]¶
沿数组的对角线返回和。
参照
numpy.trace
完整文件。参见
numpy.trace
等效函数