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