本文简要介绍 python 语言中 numpy.diagonal
的用法。
用法:
numpy.diagonal(a, offset=0, axis1=0, axis2=1)
返回指定的对角线。
如果a是二维的,返回对角线a具有给定的偏移量,即表单元素的集合
a[i, i+offset]
.如果a具有两个以上的维度,则由指定的轴轴1和轴2用于确定返回其对角线的二维sub-array。结果数组的形状可以通过删除来确定轴1和轴2并在右侧附加一个等于结果对角线大小的索引。在 1.7 之前的 NumPy 版本中,此函数始终返回一个新的独立数组,其中包含对角线中值的副本。
在NumPy 1.7 和 1.8 中,它继续返回对角线的副本,但根据这一事实已被弃用。写入结果数组继续像以前一样工作,但会发出FutureWarning。
从 NumPy 1.9 开始,它返回原始数组的只读视图。尝试写入结果数组将产生错误。
在未来的某个版本中,它将返回一个读/写视图,并且写入返回的数组将改变您的原始数组。返回的数组将与输入数组具有相同的类型。
如果您不写入此函数返回的数组,那么您可以忽略以上所有内容。
如果您依赖于当前行为,那么我们建议显式复制返回的数组,即使用
np.diagonal(a).copy()
而不仅仅是np.diagonal(a)
。这将适用于 NumPy 的过去和未来版本。- a: array_like
从中获取对角线的数组。
- offset: 整数,可选
对角线与主对角线的偏移量。可以是正面的或负面的。默认为主对角线 (0)。
- axis1: 整数,可选
轴用作二维子阵列的第一个轴,应从中获取对角线。默认为第一个轴 (0)。
- axis2: 整数,可选
用作应从中获取对角线的二维子阵列的第二个轴的轴。默认为第二轴 (1)。
- array_of_diagonals: ndarray
如果a是 2-D,则包含对角线且类型相同的 1-D 数组a被退回,除非a是一个numpy.matrix,在这种情况下是一维数组而不是(二维)numpy.matrix返回以保持向后兼容性。
如果
a.ndim > 2
,则由下式指定的尺寸轴1和轴2被删除,并在对应于对角线的末端插入一个新轴。
- ValueError
如果a的维度小于2。
参数:
返回:
抛出:
例子:
>>> a = np.arange(4).reshape(2,2) >>> a array([[0, 1], [2, 3]]) >>> a.diagonal() array([0, 3]) >>> a.diagonal(1) array([1])
一个 3-D 示例:
>>> a = np.arange(8).reshape(2,2,2); a array([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]) >>> a.diagonal(0, # Main diagonals of two arrays created by skipping ... 0, # across the outer(left)-most axis last and ... 1) # the "middle" (row) axis first. array([[0, 6], [1, 7]])
我们刚刚获得主对角线的子数组;请注意,每个都对应于固定最右侧(列)轴,并且对角线在行中为“packed”。
>>> a[:,:,0] # main diagonal is [0 6] array([[0, 2], [4, 6]]) >>> a[:,:,1] # main diagonal is [1 7] array([[1, 3], [5, 7]])
可以通过使用
numpy.flipud
或numpy.fliplr
反转元素的顺序来获得反对角线。>>> a = np.arange(9).reshape(3, 3) >>> a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> np.fliplr(a).diagonal() # Horizontal flip array([2, 4, 6]) >>> np.flipud(a).diagonal() # Vertical flip array([6, 4, 2])
请注意,检索对角线的顺序因翻转函数而异。
相关用法
- Python numpy diagflat用法及代码示例
- Python numpy diag用法及代码示例
- Python numpy diag_indices用法及代码示例
- Python numpy divmod用法及代码示例
- Python numpy divide用法及代码示例
- Python numpy digitize用法及代码示例
- Python numpy disp用法及代码示例
- Python numpy diff用法及代码示例
- Python numpy dtype.isbuiltin用法及代码示例
- Python numpy dtype.shape用法及代码示例
- Python numpy dtype.ndim用法及代码示例
- Python numpy dtype.alignment用法及代码示例
- Python numpy dtype用法及代码示例
- Python numpy dtype.names用法及代码示例
- Python numpy dtype.__class_getitem__用法及代码示例
- Python numpy dtype.flags用法及代码示例
- Python numpy dtype.fields用法及代码示例
- Python numpy dtype.subdtype用法及代码示例
- Python numpy delete用法及代码示例
- Python numpy dtype.descr用法及代码示例
- Python numpy dec.setastest用法及代码示例
- Python numpy datetime_as_string用法及代码示例
- Python numpy dtype.kind用法及代码示例
- Python numpy dtype.metadata用法及代码示例
- Python numpy dsplit用法及代码示例
注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.diagonal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。