當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。