本文簡要介紹 python 語言中 numpy.fill_diagonal
的用法。
用法:
numpy.fill_diagonal(a, val, wrap=False)
填充任意維度的給定數組的主對角線。
對於數組a和
a.ndim >= 2
,對角線是具有索引的位置列表a[i, ..., i]
全部相同。該函數就地修改輸入數組,它不返回值。- a: 數組,至少是二維的。
要填充對角線的數組,它會被就地修改。
- val: 標量或類似數組
要寫在對角線上的值。如果 val 是標量,則該值沿對角線寫入。如果類似於數組,則沿對角線寫入展平的 val,並根據需要重複填充所有對角線條目。
- wrap: bool
對於 NumPy 版本至 1.6.2 的高矩陣,N 列之後的對角線 “wrapped”。您可以使用此選項實現此行為。這僅影響高矩陣。
參數:
注意:
此函數可以通過
diag_indices
獲得,但在內部,此版本使用更快的實現,從不構造索引並使用簡單的切片。例子:
>>> a = np.zeros((3, 3), int) >>> np.fill_diagonal(a, 5) >>> a array([[5, 0, 0], [0, 5, 0], [0, 0, 5]])
相同的函數可以對 4-D 數組進行操作:
>>> a = np.zeros((3, 3, 3, 3), int) >>> np.fill_diagonal(a, 4)
為了清楚起見,我們隻顯示了幾個塊:
>>> a[0, 0] array([[4, 0, 0], [0, 0, 0], [0, 0, 0]]) >>> a[1, 1] array([[0, 0, 0], [0, 4, 0], [0, 0, 0]]) >>> a[2, 2] array([[0, 0, 0], [0, 0, 0], [0, 0, 4]])
wrap 選項隻影響 tall 矩陣:
>>> # tall matrices no wrap >>> a = np.zeros((5, 3), int) >>> np.fill_diagonal(a, 4) >>> a array([[4, 0, 0], [0, 4, 0], [0, 0, 4], [0, 0, 0], [0, 0, 0]])
>>> # tall matrices wrap >>> a = np.zeros((5, 3), int) >>> np.fill_diagonal(a, 4, wrap=True) >>> a array([[4, 0, 0], [0, 4, 0], [0, 0, 4], [0, 0, 0], [4, 0, 0]])
>>> # wide matrices >>> a = np.zeros((3, 5), int) >>> np.fill_diagonal(a, 4, wrap=True) >>> a array([[4, 0, 0, 0, 0], [0, 4, 0, 0, 0], [0, 0, 4, 0, 0]])
可以通過使用
numpy.flipud
或numpy.fliplr
顛倒元素的順序來填充反對角線。>>> a = np.zeros((3, 3), int); >>> np.fill_diagonal(np.fliplr(a), [1,2,3]) # Horizontal flip >>> a array([[0, 0, 1], [0, 2, 0], [3, 0, 0]]) >>> np.fill_diagonal(np.flipud(a), [1,2,3]) # Vertical flip >>> a array([[0, 0, 3], [0, 2, 0], [1, 0, 0]])
請注意,填充對角線的順序因翻轉函數而異。
相關用法
- Python numpy find_common_type用法及代碼示例
- Python numpy fix用法及代碼示例
- Python numpy floor用法及代碼示例
- Python numpy float_power用法及代碼示例
- Python numpy frombuffer用法及代碼示例
- Python numpy flatiter用法及代碼示例
- Python numpy fft.rfft用法及代碼示例
- Python numpy fft.irfft用法及代碼示例
- Python numpy fmod用法及代碼示例
- Python numpy flatnonzero用法及代碼示例
- Python numpy format_float_scientific用法及代碼示例
- Python numpy fabs用法及代碼示例
- Python numpy fft.rfft2用法及代碼示例
- Python numpy fft.ihfft用法及代碼示例
- Python numpy fft.fftfreq用法及代碼示例
- Python numpy fromregex用法及代碼示例
- Python numpy fromstring用法及代碼示例
- Python numpy flip用法及代碼示例
- Python numpy full用法及代碼示例
- Python numpy fft.irfftn用法及代碼示例
- Python numpy fft.irfft2用法及代碼示例
- Python numpy floor_divide用法及代碼示例
- Python numpy frexp用法及代碼示例
- Python numpy fft.rfftn用法及代碼示例
- Python numpy fft.ifftshift用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.fill_diagonal。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。