当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.array.diagonal用法及代码示例


用法:

dask.array.diagonal(a, offset=0, axis1=0, axis2=1)

返回指定的对角线。

此文档字符串是从 numpy.diagonal 复制的。

可能存在与 Dask 版本的一些不一致之处。

如果 a 是二维的,则返回具有给定偏移量的 a 的对角线,即 a[i, i+offset] 形式的元素集合。如果a 有两个以上的维度,则由axis1axis2 指定的轴用于确定返回其对角线的二维sub-array。可以通过删除axis1axis2 并在右侧附加一个等于结果对角线大小的索引来确定结果数组的形状。

在 1.7 之前的 NumPy 版本中,此函数始终返回一个新的独立数组,其中包含对角线值的副本。

在 NumPy 1.7 和 1.8 中,它继续返回对角线的副本,但根据这一事实已弃用。写入结果数组会继续像以前一样工作,但会发出 FutureWarning。

从 NumPy 1.9 开始,它返回原始数组的只读视图。尝试写入结果数组将产生错误。

在未来的某个版本中,它将返回一个读/写视图,并且写入返回的数组将改变您的原始数组。返回的数组将与输入数组具有相同的类型。

如果您不写入此函数返回的数组,那么您可以忽略以上所有内容。

如果您依赖于当前行为,那么我们建议显式复制返回的数组,即使用 np.diagonal(a).copy() 而不仅仅是 np.diagonal(a) 。这将适用于 NumPy 的过去和未来版本。

参数

aarray_like

从中获取对角线的数组。

offset整数,可选

对角线与主对角线的偏移量。可以是正面的或负面的。默认为主对角线 (0)。

axis1整数,可选

轴用作二维子阵列的第一个轴,应从中获取对角线。默认为第一个轴 (0)。

axis2整数,可选

用作应从中获取对角线的二维子阵列的第二个轴的轴。默认为第二轴 (1)。

返回

array_of_diagonalsndarray

如果 a 是二维的,则返回包含对角线且与 a 类型相同的一维数组,除非 amatrix ,在这种情况下是一维数组而不是(2-D) matrix 返回以保持向后兼容性。

如果 a.ndim > 2 ,则删除 axis1axis2 指定的尺寸,并在对应于对角线的末端插入一个新轴。

抛出

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]])

我们刚刚获得其主对角线的子数组;请注意,每个都对应于固定right-most(列)轴,并且对角线是行中的“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.flipudnumpy.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])

请注意,检索对角线的顺序因翻转函数而异。

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.array.diagonal。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。